【发布时间】:2016-09-20 11:28:19
【问题描述】:
我想按名称选择所有数值变量以及一些变量。我已经设法使用 select_if 来获取数字变量并选择按名称获取变量,但不能将两者组合成一个语句
x = data.table(c(1,2,3),c(10,11,12),c('a','b','c'),c('x','y','z'), c('l', 'm','n'))
我希望我的结果是:
V1 V2 V4 V5
1 10 x l
2 11 y m
3 12 z n
我试过了,但是不行
y = x %>%
select_if(is.numeric, V4, V5)
【问题讨论】:
-
str(x) 显示所有列都是字符。我认为这是错误的潜在原因?我也想知道你是否可以直接使用列名。
-
cbind的目的是什么?只需使用data.table。使用cbind,所有内容都被强制转换为character矩阵,因此每一列都是character。如果您将x定义为data.table(c(1,2,3),c(10,11,12),c('a','b','c'),c('x','y','z'), c('l', 'm','n')),那么x %>% select_if(is.numeric)有效(V4和V5在select_if中的用途是什么?) -
@nicola 是什么让你认为 OP 在他的包中犯了错误?据我所知,
dtplyr包含data.table。您的编辑与 IMO 的作者意图相冲突。 -
@Tensibai Ops,我不知道
dtplyr,还以为OP打错了。 -
@nicola 没问题。