不同列中的as.numeric和as.character

时间:2018-01-03 16:00:43

标签: r

我试图将一些变量设置为字符,将其他变量设置为数字,我目前拥有的是

colschar <- c(1:2, 68:72)    
colsnum <- c(3:67) 
subset <- as.data.frame(lapply(data[, colschar], as.character), (data[, colsnum], as.numeric))

返回错误。 我试图将列1:2和68:72设置为字符,将列3:67设置为数字。

2 个答案:

答案 0 :(得分:5)

我建议:

data[colschar] <- lapply(data[colschar], as.character)
data[colsnum] <- lapply(data[colsnum], as.numeric)

答案 1 :(得分:1)

如果您共享数据摘录应该会更好。无论如何,您可以尝试使用tidiverse方法:

library(dplyr)
mydf_molt <- mydf %>% 
    mutate_at(.vars=c(1:2, 68:72),.funs=funs(as.character(.))) %>% 
    mutate_at(.vars=c(3:67),.funs=funs(as.numeric(.)))