R访问用于子集设置的变量列名

R访问用于子集设置的变量列名,r,subset,R,Subset,以下内容起作用并实现了我希望它实现的功能: dat<-subset(data,NLI.1 %in% NLI) 这样,在子设置之后,我应该得到data$NLI.3ifNLI\u col中所有带有十和三十的行,我不确定我是否完全遵循了这个问题。您是否要求只对NLI.3中包含10或13的行进行子集划分?是不是比这更复杂 如果你只是想得到那些行 df[ which(df$NLI.3==10 | df$NLI.3==13 ),] 假设您的数据位于数据帧中。另外,我将数据帧的名称从“dat

以下内容起作用并实现了我希望它实现的功能:

    dat<-subset(data,NLI.1 %in% NLI)

这样,在子设置之后,我应该得到
data$NLI.3
if
NLI\u col中所有带有十和三十的行,我不确定我是否完全遵循了这个问题。您是否要求只对NLI.3中包含10或13的行进行子集划分?是不是比这更复杂

如果你只是想得到那些行

df[ which(df$NLI.3==10 | df$NLI.3==13 ),]

假设您的数据位于数据帧中。另外,我将数据帧的名称从“data”改为“df”-称之为“data”可能会导致问题。

似乎您不必要地使用了
子集。试试这个:

NLI_col <- 'NLI.3'
head(data[,NLI_col] %in% NLI)
##  [1] FALSE FALSE FALSE FALSE  TRUE FALSE
head(data[data[,NLI_col] %in% NLI, ])
##     NLI.1 NLI.2 NLI.3 other
##  5     NA    NA    10    NA
##  17     2     2    10  1005
##  26     2     2    10   801
##  31     2     2    13   572
##  36     2     2    10   980
##  38     2     2    10   843

NLI\u col没有看到
数据
很难提供帮助。请提供假(代表性)数据或
dput(头部(数据))
。我添加了一个示例。请让我知道这是否有帮助,或者你是否需要更多的东西。这应该会有帮助:很遗憾,这不起作用,因为NLI是一个可变长度的列表。e、 g.用户可能指定NLI=c(10,12,13),然后您的代码将需要一种方法来解释这一点。你能告诉我我会遇到什么样的问题吗?事实上,我在代码中使用“data”作为数据帧的变量名,这是一个相当复杂的程序,所以我现在很担心。是的,在我阅读了r2evans的答案后,我对这个问题有了更多的理解。这是个好答案。至于“data”,它已经是utils包中函数的名称。最好不要给函数命名。我不认为这对你有什么坏处。这只是一个好习惯。
df[ which(df$NLI.3==10 | df$NLI.3==13 ),]
NLI_col <- 'NLI.3'
head(data[,NLI_col] %in% NLI)
##  [1] FALSE FALSE FALSE FALSE  TRUE FALSE
head(data[data[,NLI_col] %in% NLI, ])
##     NLI.1 NLI.2 NLI.3 other
##  5     NA    NA    10    NA
##  17     2     2    10  1005
##  26     2     2    10   801
##  31     2     2    13   572
##  36     2     2    10   980
##  38     2     2    10   843