假设我有一个如下所示的数据框;
假设我希望选择列名称中包含“cases”的列,和/或如果我希望选择数字列,如何使用 data.table 语法实现此目的?
即相当于
tidyverse
代码;
df <- df |>
select(contains("cases"))
或者
df <- df |>
select(where(is.numeric))
导致;
set.seed(42)
quux <- data.table(Region = paste("Region", LETTERS[1:3]), cases_1=runif(3), cases_2=sample(20,size=3), cases_3=runif(3))
quux
# Region cases_1 cases_2 cases_3
# <char> <num> <int> <num>
# 1: Region A 0.9148060 10 0.1346666
# 2: Region B 0.9370754 4 0.6569923
# 3: Region C 0.2861395 18 0.7050648
quux[, .SD, .SDcols = patterns("cases")]
# cases_1 cases_2 cases_3
# <num> <int> <num>
# 1: 0.9148060 10 0.1346666
# 2: 0.9370754 4 0.6569923
# 3: 0.2861395 18 0.7050648
quux[, .SD, .SDcols = which(sapply(quux, is.numeric))]
# cases_1 cases_2 cases_3
# <num> <int> <num>
# 1: 0.9148060 10 0.1346666
# 2: 0.9370754 4 0.6569923
# 3: 0.2861395 18 0.7050648