全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3346 3
2015-03-29
是这样的,就是有一个向量ss,它有一列是只有0和1构成,0和1分别代表不同的意思,我的问题是用什么指令可以筛选出这个ss里这一列是1的数据?我说明白了吗?各位拜托了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-3-29 17:38:00
data[which(data$ss==1),]
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-29 17:46:03
zxn2011 发表于 2015-3-29 17:38
data[which(data$ss==1),]
谢谢啊,我输完了之后出来这个
错误于data$ss : 类别为'closure'的对象不可以取子集
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-29 19:53:13
楼主需要明确操作的对象是向量还是数据框

如果是向量,比如名为ss
ss=c(0,1,1,0,0,0,1,1,0,1,0)
ss
[1] 0 1 1 0 0 0 1 1 0 1 0

取ss为1的子集方法为:
ss[which(ss==1)]
[1] 1 1 1 1 1

如果是数据框,比如名为d1, 其中有一列为ss,另一列为x
d1=data.frame(ss,x=round(runif(length(ss),10,30)))
d1
   ss  x
1   0 23
2   1 25
3   1 10
4   0 22
5   0 28
6   0 27
7   1 24
8   1 19
9   0 17
10  1 15
11  0 12

取ss为1的子集方法为:
subset(d1,ss==1)
   ss  x
2   1 25
3   1 10
7   1 24
8   1 19
10  1 15

或者
d1[which(d1$ss==1),]
   ss  x
2   1 25
3   1 10
7   1 24
8   1 19
10  1 15

data是R的一个内置函数,任何对data的下标操作会出现错误:类别为'closure'的对象不可以取子集,比如
data[which(data$ss==1),]
Error in data$ss : object of type 'closure' is not subsettable

除非data是你已经命名的数据框,比如将d1复制到名为“data”
data=d1
data[which(data$ss==1),]
   ss  x
2   1 25
3   1 10
7   1 24
8   1 19
10  1 15
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群