【发布时间】:2014-09-23 14:49:37
【问题描述】:
我有一个 5 列和大约 10000 行的 data.frame df。
我尝试减去每对连续的行 第 (i+1) 行中第 2 列的值 来自第 (1) 行中第 3 列的值 并将结果写入名为 'diff' 的新列中
df 看起来像:
` chr start end TBX21 width
1 chr1 4847746 4847778 53.37334 32
2 chr1 6204636 6204673 33.70947 37
3 chr1 6457267 6457345 31.83673 78
`
我试过了: `
length = length(df[[1]])-1
for (i in 1:length) {
df$diff = df[i+1, 2] - df[i,3];
}
` 我得到的是:
`chr start end TBX21 width diff
1 chr1 4847746 4847778 53.37334 32 9229
2 chr1 6204636 6204673 33.70947 37 9229
3 chr1 6457267 6457345 31.83673 78 9229
4 chr1 7078778 7078822 39.32772 44 9229`
我无法弄清楚我的错误。 是的,我是 R 的初学者
【问题讨论】:
-
改用函数
diff()。 -
我认为 diff() 只给了我一列中连续行的差异。你能告诉我怎么做吗?
-
问题是您一次将差异分配给所有行,因为您也忘记了索引
diff变量。将df$diff替换为df$diff[i],它应该可以工作 -
非常感谢。你能把这个放在答案中以便我投票吗?
标签: r