我有一个叫mydf的矩阵。如结果所示,如何得到列A和C的逆?
麦德夫
A B C
2 2 2
1 3 2结果
A B C
0.5 2 0.5
1 3 0.5发布于 2016-04-19 10:02:22
我们可以试试
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”是data.frame
发布于 2016-04-19 10:02:41
我建议创建一个新的数据框架,然后反转需要反转的列。
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发布于 2018-08-23 04:54:31
这也适用于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 2https://stackoverflow.com/questions/36715042
复制相似问题