r 使用模式更改列名称的列类型
r change column type of columns names with pattern
如果我的数据集有这样的列
ID Group Col_item_01 Col_item_02 Col_item 03
1 Blue 11.23 10.12 4.3
2 Green 10.21 18.24 5.9
4 Purple 4.23 7.64 15.97
如何将所有以 , Col_item_...
开头的列转换为从字符输入数字?我知道我可以单独执行此操作,df1$Col_item_01 <- as.numeric(as.character(df1$Col_item_01)
,但我对使用 grep 或 grepl 或字符串函数仅提取这些以 Col_item_...
开头的列并将它们更改为数字的有效方法感兴趣。非常感谢任何建议。谢谢
使用type.convert
:
df1 <- type.convert(df1, as.is = TRUE)
我们可以循环 across
starts_with
'Col_item_' 的列并在 tidyverse
中转换为 numeric
library(dplyr)
df1 <- df1 %>%
mutate(across(starts_with("Col_item_"),
~ as.numeric(as.character(.))))
或在 base R
中,使用 grep
获取具有模式的列名称并循环遍历 lapply
中的选定列并进行赋值
nm1 <- grep("^Col_item_", names(df1))
df1[nm1] <- lapply(df1[nm1], function(x) as.numeric(as.character(x)))
如果我的数据集有这样的列
ID Group Col_item_01 Col_item_02 Col_item 03
1 Blue 11.23 10.12 4.3
2 Green 10.21 18.24 5.9
4 Purple 4.23 7.64 15.97
如何将所有以 , Col_item_...
开头的列转换为从字符输入数字?我知道我可以单独执行此操作,df1$Col_item_01 <- as.numeric(as.character(df1$Col_item_01)
,但我对使用 grep 或 grepl 或字符串函数仅提取这些以 Col_item_...
开头的列并将它们更改为数字的有效方法感兴趣。非常感谢任何建议。谢谢
使用type.convert
:
df1 <- type.convert(df1, as.is = TRUE)
我们可以循环 across
starts_with
'Col_item_' 的列并在 tidyverse
numeric
library(dplyr)
df1 <- df1 %>%
mutate(across(starts_with("Col_item_"),
~ as.numeric(as.character(.))))
或在 base R
中,使用 grep
获取具有模式的列名称并循环遍历 lapply
中的选定列并进行赋值
nm1 <- grep("^Col_item_", names(df1))
df1[nm1] <- lapply(df1[nm1], function(x) as.numeric(as.character(x)))