楼主: Edward_ln
3381 3

[问答] 关于R语言筛选数据 [推广有奖]

  • 0关注
  • 0粉丝

大专生

21%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
390 点
帖子
40
精华
0
在线时间
28 小时
注册时间
2015-3-25
最后登录
2016-3-7

楼主
Edward_ln 发表于 2015-3-29 17:34:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
是这样的,就是有一个向量ss,它有一列是只有0和1构成,0和1分别代表不同的意思,我的问题是用什么指令可以筛选出这个ss里这一列是1的数据?我说明白了吗?各位拜托了
二维码

扫码加我 拉你入群

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

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

关键词:筛选数据 R语言 我的问题 拜托了 筛选出

沙发
zxn2011 发表于 2015-3-29 17:38:00
data[which(data$ss==1),]

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

板凳
lanyajia 发表于 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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 15:38