r - 选择 R 中的数字字符列

我有一个包含多个数字和字符列(超过 1000 列)的数据集,我只想识别可以转换为数字变量的字符变量。 示例:

> Df
  ID var0 var1 var2  var3
1  1   10   1A    a 500.2
2  2    8    2    b   400
3  3    9    7    c 603.1
4  4    2 aa4e    d   700
> str(Df)
'data.frame':   4 obs. of  5 variables:
 $ ID  : chr  "1" "2" "3" "4"
 $ var0: num  10 8 9 2
 $ var1: chr  "1A" "2" "7" "aa4e"
 $ var2: chr  "a" "b" "c" "d"
 $ var3: chr  "500.2" "400" "603.1" "700"

此处所需的列是:ID 和 var3

提前致谢!

最佳答案

我们可以使用 type.convertselect

library(dplyr)
Df %>%
    type.convert(as.is = TRUE) %>% 
    select(where(is.numeric))

-输出

#   ID var0  var3
#1  1   10 500.2
#2  2    8 400.0
#3  3    9 603.1
#4  4    2 700.0

或者选择一个包含任何数字部分的列

library(stringr)
Df %>%
    select(where(~ any(str_detect(., '^[0-9]+$'))))

数据

Df <- structure(list(ID = c("1", "2", "3", "4"), var0 = c(10L, 8L, 
9L, 2L), var1 = c("1A", "2", "7", "aa4e"), var2 = c("a", "b", 
"c", "d"), var3 = c("500.2", "400", "603.1", "700")), row.names = c("1", 
"2", "3", "4"), class = "data.frame")

https://stackoverflow.com/questions/66532324/

相关文章:

python - 基于另一列计算的列

javascript - 是否可以从 Javascript 动画创建视频?

java - 检查字符串是否包含数组中的字符

optimization - F# 和 ILNumerics

javascript - 检查对象中的任何数组是否包含空值

python-3.x - 如何仅更改二维列表的对角线元素?

amazon-web-services - 如何设置我的 HostedZone 以便它委托(dele

c++ - unique_ptr 是否交换复制内容?

javascript - 如何在 Javascript 的 foreach 循环中合并多个数组

python - 如何使用 python 生成二维码并在扫描时使其打开定义的 url?