You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从data.table中选取指定字符列与所有数值列?

用data.table选取指定字符列+所有数值列的解决方案

核心思路

先识别数据中所有数值类型的列,再将指定的emp_name列与这些数值列合并,最后通过data.table的列选取语法或.SDcols实现筛选。

具体实现代码

library(data.table)

# 示例数据
emp.data <- data.table(
  emp_id = c (1:5),
  emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
  salary = c(623.3,515.2,611.0,729.0,843.25),
  start_date = as.Date(c("2012-01-01", "2013-09-23", "2014-11-15", "2014-05-11",
                         "2015-03-27")),
  stringsAsFactors = FALSE
)

# 筛选所有数值列的列名
numeric_cols <- names(emp.data)[sapply(emp.data, is.numeric)]
# 组合目标列(指定列+数值列)
target_columns <- c("emp_name", numeric_cols)

# 方式一:直接用列名选取(简洁高效)
result <- emp.data[, ..target_columns]

# 方式二:使用.SDcols实现
result_with_sd <- emp.data[, .SD, .SDcols = target_columns]

效果验证

运行后会得到包含emp_name、emp_id、salary的数据集,自动排除非数值类型的start_date列,完全符合需求。

内容的提问来源于stack exchange,提问作者Arda Askin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:25:16