我有一个名为mydf
的矩阵。如何获得结果中显示的A列和C列的反转?
是myDF
A B C
2 2 2
1 3 2
结果
A B C
0.5 2 0.5
1 3 0.5
答案 0 :(得分:2)
我们可以尝试
mydf[c(1,3)] <- lapply(mydf[c(1,3)], function(x) 1/x)
mydf
# A B C
#1 0.5 2 0.5
#2 1.0 3 0.5
或使用dplyr
library(dplyr)
mydf %>%
mutate_each(funs(1/.), -one_of("B"))
注意:这里我假设“mydf&#39;作为data.frame
答案 1 :(得分:2)
我建议创建一个新的数据框,然后反转需要反转的列
mydf <- data.frame(A=c(2,1), B=c(2,3), C=c(2,2))
mydf2 <- mydf
mydf2[,c(1,3)] <- mydf2[,c(1,3)]^(-1)
mydf2
# A B C
#1 0.5 2 0.5
#2 1.0 3 0.5
答案 2 :(得分:0)
在R中也可以使用
> df <- data.frame(A=c(2,4), B=c(2,5), C=c(2,2))
> df
# A B C
#1 2 2 2
#2 4 5 2
> cols = c('A','B')
> df[cols] = 1/df[cols]
> df
# A B C
#1 0.50 0.5 2
#2 0.25 0.2 2