假设我有以下数据集
d <- data.frame(1:31, 31:1)
names(d) <- c("1st", "2nd")
并且我想在名为“ 1st”的列中选择出现“ 3”的列(即应选择第3、13和31列,而不是第1、9和29列)。
sqldf("select * from d where 1st LIKE '%3%'")
给我错误,错误:无法识别的令牌:“ 1st”
如何基于部分匹配来选择性地对数据帧的一部分进行子集化?
所需的输出:
1st 2nd
3 29
13 19
31 1
非常感谢您的帮助
我们有非法列名,将其括在方括号中:
sqldf("select * from d where [1st] LIKE '%3%'")
# 1st 2nd
# 1 3 29
# 2 13 19
# 3 23 9
# 4 30 2
# 5 31 1