【发布时间】:2016-07-19 11:53:32
【问题描述】:
我有一个如下结构的数据框: 它可以有多个行和列
v<-c("control", NA, 1, 2, 4, "test", NA, 1, 2, 4, "test", NA, 1, 2, 4, "test", NA, 1, 2, 4)
df<- as.data.frame(t(matrix(v, nrow=5, ncol=4)))
colnames(df)<-c("ID", "G1", "G2", "G3", "G4")
df
ID G1 G2 G3 G4
1 control <NA> 1 2 4
2 test <NA> 1 2 4
3 test <NA> 1 2 4
4 test <NA> 1 2 4
我想从其他行中减去 ID==control 的行,得到以下结果:
result
ID G1 G2 G3 G4
1 test <NA> 0 0 0
2 test <NA> 0 0 0
3 test <NA> 0 0 0
我尝试了 sweep() 函数,我尝试将它通过 for 循环,但没有任何效果。
如果有人可以帮助我,那就太棒了。 谢谢!
【问题讨论】:
-
如果有两行
control怎么办? -
你的列是因素
-
到目前为止,我尽量避免使用
control的 2 行,因为这会使后续统计数据更加复杂