【发布时间】:2019-07-18 09:08:08
【问题描述】:
我有来自调查的数据,其中任何问题的回答都被认为是有效的,无论之前或之后的问题都得到了回答。
响应的所有数据都在 data.table 中,列在名称以“问题”开头的列中
> dt.x <- data.table(
row = 1:5,
question_a = c(NA,NA,"A","B","C"),
question_b = c(NA,"A","B","C","D")
)
> dt.x
row question_a question_b
1: 1 <NA> <NA>
2: 2 <NA> A
3: 3 A B
4: 4 B C
5: 5 C D
我的目标是删除以“问题”开头的任何列中没有数据的行,但其他列中可能有数据,例如示例中的行列。
row question_a question_b
1: 2 <NA> A
2: 3 A B
3: 4 B C
4: 5 C D
如何在 grepping 列名时执行此操作?我正在尝试类似的东西
> dt.x[!all(is.na(get(grep("question", names(dt.x), value = T))))]
row question_a question_b
1: 1 <NA> <NA>
2: 2 <NA> A
3: 3 A B
4: 4 B C
5: 5 C D
但没有得到我想要的结果。
【问题讨论】:
标签: r data.table