我有一个数据框,其中一列包含非数字值.我需要在数值列上应用一个函数并创建新的数据框,但我希望在这个新数据框中保留包含非数值的列.
#Data frame (exemple)
df <- data.frame(col1 = c(1:5), col2 = c(6:10), col3 = c("x","y","z","w","x"))
#Function (example)
sum1 <- function(x){x + 1}
df_aplly <- as.data.frame(apply(df, MARGIN = 2, FUN = sum1))
此示例返回错误:
X+1中的错误:二元运算符的非数字参数
我试着只在数字列上应用:
#Function (exemple)
sum1 <- function(x){x + 1}
df_aplly <- as.data.frame(apply(df[1:2], MARGIN = 2, FUN = sum1))
> df_aplly
col1 col2
1 2 7
2 3 8
3 4 9
4 5 10
5 6 11
它可以工作,但返回一个只有2列的新数据框,但我需要在这个新数据框中保持列的非数字.
有没有办法只使用‘Apply()’函数就可以做到这一点呢?
#data frame I need:
> df_aplly
col1 col2 df$col3
1 2 7 x
2 3 8 y
3 4 9 z
4 5 10 w
5 6 11 x