选择数据框中行的列值部分匹配

问题描述 投票:-1回答:1

假设我有以下数据集

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

非常感谢您的帮助

r subset partial sqldf
1个回答
0
投票

我们有非法列名,将其括在方括号中:

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
© www.soinside.com 2019 - 2024. All rights reserved.