首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于R中的两个自变量在data.frame中选择行

基于R中的两个自变量在data.frame中选择行
EN

Stack Overflow用户
提问于 2015-11-10 10:45:00
回答 2查看 99关注 0票数 0

建议我有一个data.frame:

代码语言:javascript
复制
df<-mtcars

现在我要做的是在 rowname ="Valiant"之前选择行,在 rowname = "Datsun 710"之后选择行,这样输出看起来就像

代码语言:javascript
复制
                   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

到目前为止我尝试过的:

代码语言:javascript
复制
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),  ]

但是不支持,尽管的单个代码片段可以运行

代码语言:javascript
复制
> 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

我错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-10 11:31:26

我想你可以试试select <- df[ c(which((rownames(df) == "Valiant"))-1 ,which((rownames(df)== "Datsun 710")) +1) , ]

因为which返回数字,所以您可以简单地c all which

票数 1
EN

Stack Overflow用户

发布于 2015-11-10 11:47:05

我想出了以下答案:

代码语言:javascript
复制
  df[c(which(grepl(toupper("Datsun"),toupper(rownames(df))))+1,which(grepl(toupper("valiant"),toupper(rownames(df))))-1) , ] 

这对我有用:)!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33628203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档