gpt4 book ai didi

r - 传递一个带有列名和字段的 data.frame 作为过滤器

转载 作者:行者123 更新时间:2023-12-01 12:13:43 26 4
gpt4 key购买 nike

假设我有以下内容:

filt = data.frame(X1 = c("Gender","EmployeeStatus"),X2 = c('Male','Active'))
df = data.frame(Gender = c('Male','F','Male','Male','F'),EmployeeStatus = c('Active','na','Active','Active','na'))

我希望能够使用 filt 中的数据作为 df 的过滤器。我在下面尝试过,但在获取时遇到错误:第一个参数无效。

 d2 = df[get(filt[1,1])==filt[2,1] &
get(filt[1,2])==filt[2,2]]

最佳答案

您正在寻找的是 semi_join,您需要过滤器数据框采用不同的格式:

library(dplyr)
df <- data.frame(Gender = c('Male','F','Male','Male','F'),EmployeeStatus = c('Active','na','Active','Active','na'),stringsAsFactors = FALSE)
filt <- data.frame(Gender = "Male",EmployeeStatus = "Active",stringsAsFactors = FALSE)
> semi_join(df,filt)
Joining, by = c("Gender", "EmployeeStatus")
Gender EmployeeStatus
1 Male Active
2 Male Active
3 Male Active

(顺便说一下,我认为您在问题中调换了一些索引。)

关于r - 传递一个带有列名和字段的 data.frame 作为过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49826639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com