为了继续我的数据集的准备工作,我需要让它成为每一列的字符串是数字而不是字符。
str(eighthr)
'data.frame': 2533 obs. of 74 variables:
$ Date : chr "1/2/1998" "1/3/1998" "1/4/1998" "1/5/1998" ...
$ WSR0 : chr "2.8" "2.9" "4.7" "2.6" ...
$ WSR1 : chr "3.2" "2.8" "3.8" "2.1" ...
$ WSR2 : chr "3.3" "2.6" "3.7" "1.6" ...
$ WSR3 : chr "2.7" "2.1" "3.8" "1.4" ...
$ WSR4 : chr "3.3" "2.2" "2.9" "0.9" ...
$ WSR5 : chr "3.2" "2.5" "3.1" "1.5" ...如何转换除$Date之外的所有行?
发布于 2021-06-10 09:04:15
我尝试过henryn解决方案,它起作用了。您可以尝试复制此代码,看看是否出现错误。
library(dplyr)
data <- data.frame(
Date = as.character(c('1/2/1998', '1/3/1998')),
WSR0 = c('2.5', '2.6'),
WSR1 = c('3.2', '3.5')
)
data2 <- mutate(data, across(-Date, as.numeric))
str(data2)不管出于什么原因,如果变异方法仍然不起作用,你可以做一种乏味的方法,但肯定有效,那就是简单地使用as.numeric。这应该是肯定有效的,因为它只使用base R命令,我们可以排除任何库问题。
eighthr$WSR0 <- as.numeric(eighthr$WSR0)
eighthr$WSR1 <- as.numeric(eighthr$WSR1)发布于 2021-06-10 05:31:19
您可以在dplyr的mutate中使用across
library(dplyr)
mutate(eighthr, across(-Date, as.numeric))https://stackoverflow.com/questions/67911912
复制相似问题