删除名为 "NA" 的列
Removing Columns Named "NA"
我正在处理一些 RNA-seq 计数数据,我有大约 60,000 列包含基因名称和 24 行包含样本名称。当我进行一些基因名称转换时,我留下了一堆名为 NA
的列。我知道 R 处理 NA
的方式与典型的列名不同,我的问题是如何删除这些列。这是我的数据示例。
"Gene1" "Gene2" "Gene3" NA "Gene4"
1 10 11 12 10 15
2 13 12 50 40 30
3 34 23 23 21 22
我希望它最终像
"Gene1" "Gene2" "Gene3" "Gene4"
1 10 11 12 15
2 13 12 50 30
3 34 23 23 22
我确实发现了一些适用于其他人但不适用于我的 R 代码
df<-df[, grep("^(NA)", names(df), value = TRUE, invert = TRUE)]
看起来你的名字中有一个实际的 NA
,而不是 "NA"
。前者代表一个缺失值,后者是一个看起来像代表缺失值的符号的字符串。使用:
df <- df[!is.na(names(df))]
用iris
说明:
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> names(iris)[2:3] <- NA
> head(iris)
Sepal.Length NA NA Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> head(iris[!is.na(names(iris))])
Sepal.Length Petal.Width Species
1 5.1 0.2 setosa
2 4.9 0.2 setosa
3 4.7 0.2 setosa
4 4.6 0.2 setosa
5 5.0 0.2 setosa
6 5.4 0.4 setosa
我正在处理一些 RNA-seq 计数数据,我有大约 60,000 列包含基因名称和 24 行包含样本名称。当我进行一些基因名称转换时,我留下了一堆名为 NA
的列。我知道 R 处理 NA
的方式与典型的列名不同,我的问题是如何删除这些列。这是我的数据示例。
"Gene1" "Gene2" "Gene3" NA "Gene4"
1 10 11 12 10 15
2 13 12 50 40 30
3 34 23 23 21 22
我希望它最终像
"Gene1" "Gene2" "Gene3" "Gene4"
1 10 11 12 15
2 13 12 50 30
3 34 23 23 22
我确实发现了一些适用于其他人但不适用于我的 R 代码
df<-df[, grep("^(NA)", names(df), value = TRUE, invert = TRUE)]
看起来你的名字中有一个实际的 NA
,而不是 "NA"
。前者代表一个缺失值,后者是一个看起来像代表缺失值的符号的字符串。使用:
df <- df[!is.na(names(df))]
用iris
说明:
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> names(iris)[2:3] <- NA
> head(iris)
Sepal.Length NA NA Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> head(iris[!is.na(names(iris))])
Sepal.Length Petal.Width Species
1 5.1 0.2 setosa
2 4.9 0.2 setosa
3 4.7 0.2 setosa
4 4.6 0.2 setosa
5 5.0 0.2 setosa
6 5.4 0.4 setosa