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
ifNLI\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