我有一个名为ann的数据帧,它有几百行。我只展示了几个。
Exp Result
1 gmp_123 kip
2 gmp_345 kip
3 gmp_786 kip
4 gmp_564 min
5 gmp_347 min
基本上我想从Exp列创建两个向量。一个将具有Exp值,其中Result ==“kip”,另一个具有Exp值,其中Result ==“min”。
因此第一个向量的值为gmp_123,gmp_345,gmp_786,第二个向量的值为gmp_564,gmp_347。
我尝试了如下子集方法:
ann.kiu <- subset(ann, select=Exp, subset(Result=="kip"))
但我得到了
“subset.default中出错(Result ==”kip“): 参数“subset”缺失,没有默认的“错误
由于
答案 0 :(得分:2)
创建2个向量:
kip <- subset(ann, subset=(Result == "kip"), select=Exp, drop=TRUE)
min <- subset(ann, subset=(Result == "min"), select=Exp, drop=TRUE)
但听起来你真的想要创建数据框的2个子集,在这种情况下只省略上面的drop=TRUE
部分。
答案 1 :(得分:1)
这是一个简单的错字:你只需要添加一个等号:
ann.kiu<-subset(ann, select=Exp, subset=(Result=="kip"))
编辑添加:这是直接从我的R会话中粘贴的:
> Exp=c("gmp_123","gmp_345","gmp_786","gmp_564","gmp_374")
> Result=c(rep("kip",3),rep("min",2))
> ann=data.frame(Exp,Result)
> ann
Exp Result
1 gmp_123 kip
2 gmp_345 kip
3 gmp_786 kip
4 gmp_564 min
5 gmp_374 min
> ann.kiu<-subset(ann, select=Exp, subset=(Result=="kip"))
> ann.kiu
Exp
1 gmp_123
2 gmp_345
3 gmp_786
这是你想要的吗?
答案 2 :(得分:0)
kip <- subset(ann, Result == 'kip')[,"Exp"]
min <- subset(ann, Result == 'min')[,"Exp"]
尝试以上方法。这基本上是从kip或min的子集索引感兴趣的列。