必须从数据库中选择特定的字符列(emp_name)和仅数字列。我尝试了。sdcols的功能,但我无法理解。下面是data.table
emp。- Data .table(
)emp_id = c (1:5),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
工资= 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)
我们可以在.SDcols
中使用一个函数
emp.data[, .SD, .SDcols = function(x) is.numeric(x)|is.character(x)]
与产出
emp_id emp_name salary
1: 1 Rick 623.30
2: 2 Dan 515.20
3: 3 Michelle 611.00
4: 4 Ryan 729.00
5: 5 Gary 843.25
或者也可以使用
emp.data[, c(.(emp_name = emp_name),.SD), .SDcols = is.numeric]
与产出
emp_name emp_id salary
1: Rick 1 623.30
2: Dan 2 515.20
3: Michelle 3 611.00
4: Ryan 4 729.00
5: Gary 5 843.25
或者作为唯一删除的列是Date
,我们也可以否定(!
)
emp.data[, .SD, .SDcols = !is_date]
emp_id emp_name salary
1: 1 Rick 623.30
2: 2 Dan 515.20
3: 3 Michelle 611.00
4: 4 Ryan 729.00
5: 5 Gary 843.25