如何在 R data.table 中选择包含特定字符和列类型的列

问题描述 投票:0回答:1

假设我有一个如下所示的数据框;

假设我希望选择列名称中包含“cases”的列,和/或如果我希望选择数字列,如何使用 data.table 语法实现此目的?

即相当于

tidyverse
代码;

df <- df |> 
  select(contains("cases"))

或者

df <- df |> 
  select(where(is.numeric))

导致;

r dataframe data.table
1个回答
0
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.