首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中数据的列中使用索引操作

在R中数据的列中使用索引操作
EN

Stack Overflow用户
提问于 2022-01-21 13:55:52
回答 1查看 24关注 0票数 0

我有一个名为"d“的dataframe,有11个变量和170行。我想以9,10和11 (d$CH4,d$CO2,d$N2O)的数值操作,并创建一个新的df dr$CH4,dr$CO2,dr$N2O列,以节省操作的结果。它由一系列的子串组成。我一个接一个做了。对于第9栏(d$CH4),如下所示: d2,9 - d1-9,然后d4,9 - d3-9,d6,9 - d5-9等,以一列(dr$CH4)和85行结束,每一次减法的结果。然后,我将在另外两列中重复这个过程。基本上,每一行奇数减去以前的偶数行。我尝试过这样做,但它只会给出一个空的df作为输出。

代码语言:javascript
运行
复制
dr<- d[,9:11]
dr[,1:3] <- NA  #saving the names of the columns
j<-0

for (i in d$CH4){   
    dr[j,1] <- d[(i+1),9] - d[i, 9]
    j+1

}
EN

回答 1

Stack Overflow用户

发布于 2022-01-21 14:18:25

我建议一种没有任何循环的解决方案--您只需将data.frame转换为一个,然后减去原始的一个,例如:

代码语言:javascript
运行
复制
d <- data.frame(matrix(runif(170*11), ncol=11, nrow=170))
dr<- d[,9:11] #getting subset
dr_help <- dr[2:nrow(d),] #shifting
result <- dr_help - dr[1:(nrow(dr)-1),] #calculation (equal to i+1 - i)

另外,请注意,您的新data.frame比原来的要短一个,因为您无法计算最后一个条目,因为i+1将大于nrow(d)

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

https://stackoverflow.com/questions/70802458

复制
相关文章

相似问题

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