1

我正在尝试使用现有的数据框和成对的数据创建一个新的数据框

TargetID    A1           A2           B1      B2     
cg00000108 0.94483140 0.959417300 0.94427000 0.956393400 
cg00000292 0.83331720 0.836168900 0.75568530 0.869691000 
cg00001594 0.00000000 0.009319287 0.00318779 0.001852309 
cg00003298 0.01775547 0.034981820 0.03380106 0.116663900 
cg00003345 0.55442110 0.542106600 0.54762020 0.624028200 
cg00004055 0.10287610 0.107147500 0.09293073 0.106663000

这个想法是得到一个数据帧与对之间的减法结果,所以最后得到三列

TargetID A1-A2 B1-B2

我试图向我们申请,但我在 R 中没有足够的编程技能来了解如何对函数说从哪里开始减法

提前致谢

4

2 回答 2

1

简单地说:

with(d, data.frame(TargetID, A1-A2, B1-B2))

d你的数据框在哪里。

于 2011-10-05T10:27:22.010 回答
0

这是一种使用 R 的索引功能和矢量化操作的方法。生成与要减去的列相对应的两个索引序列。这是一个例子:

#5 row by 10 column matrix
m <- matrix(rnorm(50), ncol = 10)

#sequence one for columns 1,3,5,7,9
s1 <- seq(1,ncol(m),2)
#sequence two for columns 2,4,6,8,10
s2 <- seq(2,ncol(m),2)

#Create new matrix
m2 <- m[, s1] - m[, s2]

#apply some column names
colnames(m2) <- paste("x", s1, s2, sep = "_")

刚刚意识到我之前在这里问过几乎相同的问题:一次对多个列进行操作

于 2011-10-05T11:13:01.817 回答