我使用的数据集包含存储为字符的数字。下面您可以看到使用 dput 函数提取的数据的数据示例:
structure(list(Y_O_13_Males = c("10", "0", "0", "0", "0", "0",
"0", "0", "0", "0"), Y_O_13_Females = c("1", "0", "0", "0", "0",
"0", "0", "0", "0", "0"), Y_O_13_Unknown = c("7", "0", "0", "0",
"0", "0", "0", "0", "0", "0"), Y14_17_Males = c("2", "0", "0",
"0", "0", "0", "0", "0", "0", "0"), Y14_17_Females = c("0", "0",
"0", "0", "0", "0", "0", "0", "0", "0"), Y14_17_Unknown = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y18_34_Males = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y18_34_Females = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y18_34_Unknown = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y35_64_Males = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y35_64_Females = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y35_64_Unknown = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y65_And_Over_Males = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y65_And_Over_Females = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Y65_And_Over_Unknown = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Unknown_And_Over_Males = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Unknown_And_Over_Females = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0"), Unknown_And_Over_Unknown = c("0",
"0", "0", "0", "0", "0", "0", "0", "0", "0")), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
Run Code Online (Sandbox Code Playgroud)
现在我想将所有这些数据从字符格式转换为数字。我尝试使用这行代码但不起作用。
df[,1:18]<-as.numeric(df[,1:18])
Run Code Online (Sandbox Code Playgroud)
那么有人可以帮助我如何解决这个问题吗?
使用dplyr,我会使用:
library(dplyr)
df %>%
mutate(
across(
.cols = where(is.character),
.fns = as.numeric
)
)
Run Code Online (Sandbox Code Playgroud)
这还假设您想要更改为数字所有字符变量。