建议我有一个data.frame:
df<-mtcars现在我要做的是在 rowname ="Valiant"之前选择行,在 rowname = "Datsun 710"之后选择行,这样输出看起来就像
mpg cyl disp hp drat wt qsec vs am gear carb
Hornet Sportabout 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
Hornet 4 Drive 2 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1到目前为止我尝试过的:
select <- df[which(rownames(df)=="Valiant")-1,] | df[which(rownames(df)=="Datsun 710")+1, ]
select <- df[ which((rownames(df) == "Valiant") -1 | (rownames(df)== "Datsun 710") +1) , ]
select <- df[(rownames(df) == "Valiant")-1 | (rownames(df) == "Datsun 710")+1, ]
select <- df[ (which(rownames(df) == "Valiant") -1) | (which(rownames(df) == "Datsun 710") +1), ]但是不支持,尽管的单个代码片段可以运行
> df[which(rownames(df)=="Valiant")-1,]
mpg cyl disp hp drat wt qsec vs am gear carb
Hornet Sportabout 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2
> df[which(rownames(df)=="Datsun 710")+1, ]
mpg cyl disp hp drat wt qsec vs am gear carb
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1我错过了什么?
发布于 2015-11-10 11:31:26
我想你可以试试select <- df[ c(which((rownames(df) == "Valiant"))-1 ,which((rownames(df)== "Datsun 710")) +1) , ]
因为which返回数字,所以您可以简单地c all which
发布于 2015-11-10 11:47:05
我想出了以下答案:
df[c(which(grepl(toupper("Datsun"),toupper(rownames(df))))+1,which(grepl(toupper("valiant"),toupper(rownames(df))))-1) , ] 这对我有用:)!
https://stackoverflow.com/questions/33628203
复制相似问题