对存储在数据框中的条件使用 %LIKE% 语句

Using the %LIKE% Statement for a Condition Stored in a Data Frame

提问人:stats_noob 提问时间:8/9/2022 更新时间:8/9/2022 访问量:57

问:

我有这些数据帧:

 my_data = data.frame(col1 = c("abc", "bcd", "bfg") , id = 1:3)
 my_data_1 = data.frame(col1 = c("abc", "byd", "bgg") , id = 1:3)

我想从“my_data_1”中选择与“my_data”的第一行和第一列相等的所有行。换句话说,从“my_data_1”中选择所有行,其中该行包含值“abc”。我尝试使用以下代码:

library(data.table)

 my_data[like(my_data_1, my_data[1,1])]

在我看来,应该只输出第一行。但是,似乎已输出所有行:

  col1
1  abc
2  bcd
3  bfg

有人可以告诉我我做错了什么吗?

谢谢!

R 选择 Data.Table 类 SQL 数据操作

评论

1赞 akrun 8/9/2022
我想你需要setDT(my_data_1)[col1 %like% my_data$col1[1]]

答:

1赞 hannes101 8/9/2022 #1

我总是发现使用微分很有用,如果您直接选择列名,则结果是一个向量。但是,如果您尝试使用,则应创建这样的 data.frames。data.tabledata.table

my_data = data.table(col1 = c("abc", "bcd", "bfg") , id = 1:3)
my_data_1 = data.table(col1 = c("abc", "byd", "bgg") , id = 1:3)


my_data[like(col1, my_data[1,col1])]