【发布时间】:2020-08-01 09:59:15
【问题描述】:
我正在尝试根据行名操作列值,我们将不胜感激。
data(mtcars)
mtcars$gear1 <- factor(mtcars$gear, levels = c(3,4,5))
my.mean <- function(x) if(is.numeric(x)) mean(x) else prop.table(table(x))
B <- setNames(as.data.frame(unlist(lapply(mtcars, FUN = my.mean))), "mean")
class(B)
row.names(B)
put.per <- c("gear1.3", "gear1.4", "gear1.5")
sapply(row.names(B),function(x){
if(x %in% put.per) paste(B$mean, "%", sep = "")
})
预期的答案
mean
mpg 20.090625
cyl 6.187500
disp 230.721875
hp 146.687500
drat 3.596563
wt 3.217250
qsec 17.848750
vs 0.437500
am 0.406250
gear 3.687500
carb 2.812500
gear1.3 0.468750%
gear1.4 0.375000%
gear1.5 0.156250%
提前多谢
【问题讨论】:
标签: r dplyr lapply data-manipulation sapply