提问人:stats_noob 提问时间:8/9/2022 更新时间:8/9/2022 访问量:57
对存储在数据框中的条件使用 %LIKE% 语句
Using the %LIKE% Statement for a Condition Stored in a Data Frame
问:
我有这些数据帧:
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
有人可以告诉我我做错了什么吗?
谢谢!
答:
1赞
hannes101
8/9/2022
#1
我总是发现使用微分很有用,如果您直接选择列名,则结果是一个向量。但是,如果您尝试使用,则应创建这样的 data.frames。data.table
data.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])]
评论
setDT(my_data_1)[col1 %like% my_data$col1[1]]