循环遍历R中的特定列名称

Hen*_*ark 5 for-loop r dataframe

我有一个数据框AData,我已经提取了其列名的某个子集,如SpecialNames.我想知道如何在for循环中引用这些列.

我当前的代码如下所示:

SpecialNames <- setdiff(colnames(AData), colnames(BData))

for ( i in SpecialNames ) {

    AData$i <- NULL # Do something to AData$i such as delete it or something else

}
Run Code Online (Sandbox Code Playgroud)

唉,AData $ i似乎没有引用名为i的数据帧AData列.是否有不同的语法可以给我这个?

我在这篇文章阅读在这里说:"在$是交互式的使用相反,在编程时,即,当被解释的列名,你需要使用[或[,所以我更换样品$ i.imp与样本[[paste0(i,'.impt')]]".

根据这个评论,我猜测也许我一直在寻找的语法是AData $ [i]或AData $ [[i]]或AData $ [[paste0(i)]]但这些似乎都不起作用.

有任何想法吗?

use*_*275 1

您不需要for循环,可以直接访问列。这是一个例子:

Adata <- data.frame(a=rnorm(5), b=rnorm(5), c=rnorm(5))
SpecialNames <- c("b", "c")
Adata[,SpecialNames] <- NA
Run Code Online (Sandbox Code Playgroud)

给你:

            a  b  c
1 -0.95619055 NA NA
2 -0.20250939 NA NA
3 -1.06609997 NA NA
4  0.06337307 NA NA
5  0.77234892 NA NA
Run Code Online (Sandbox Code Playgroud)

您确定要使用吗NULLNA通常用于缺失值,请参见此处