我有一个data.frame df 5列和10000行左右。连续行不同列中值的差异
我尝试。减去对于每对连续行 第2列的行的值(i + 1) 从塔3的行中的值(1) 并将结果写入在一个称为新列'差异”
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`
我不能figuere了我的错误。 是的我是一个初学者在R
改为使用函数'diff()'。 – Andrie 2014-09-23 14:54:07
我认为diff()只给出了一列内连续行的差异。你能告诉我怎么样? – pidoretroma 2014-09-23 14:55:10
问题是你一次把所有的行分配给不同的行,因为你忘了索引你'diff'变量。把'df $ diff'替换为'df $ diff [i]',它应该可以工作 – Bernardo 2014-09-23 14:58:34