删除名为 "NA"的列

标签 r 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

关于删除名为 "NA"的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30743304/

相关文章:

r - data.table:通过键检查所有行是否为 NA

R - 根据模式和条件删除字符串列中的子字符串

python - 设置子图的背景颜色

r - 将多个 NA 行添加到数据框

r - 根据行内 NA 的数量有条件地删除行

r - 根据 dplyr 中的条件更改多个列值

r - 选择数据 - 第一个条目 + 设置时间段(1 年)R

使用 R 中的坐标从矩阵中删除值

r - 使用同一数据框中的数据填充 data.frame 中的缺失值

r - 处理相关性计算的缺失值