我正在尝试使用包含成对数据的现有数据框来创建新数据框
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中没有足够的编程技巧来获得如何对函数开始减法的说法
提前致谢
答案 0 :(得分:1)
简单地说:
with(d, data.frame(TargetID, A1-A2, B1-B2))
其中d
是您的数据框。
答案 1 :(得分: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 = "_")
刚才我意识到我之前曾问过几乎相同的问题:Operate on multiple columns at once