R中列值的反转

时间:2016-04-19 10:00:01

标签: r

我有一个名为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

3 个答案:

答案 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