删除行名/列名/名称,而不在 R 中显式将其设置为 NULL

  • 本文关键字:设置 NULL 名称 列名 删除行 r
  • 更新时间 :
  • 英文 :


给定此数据:

data <- read.table(text="
   age married house income gender class
1   22       0     0     28      1     0
2   46       0     1     32      0     0
3   24       1     1     24      1     0
4   23       0     1     40      0     1
5   50       1     1     28      0     1
")

每当我获取多个值的部分时,我也会获得行和/或列名称,例如:

> data[1, 1:2]
  age married
1  22       0

有没有办法删除任何名称并使其无名(无标签),而无需事先将任何内容显式设置为 NULL(或加载到带有 row.names=F 等的文件中)?

目标只是确保在调用类似 nameless(..) 之类的东西时不会附加任何内容。

# Not OK 
colnames(data) <- NULL
data[1, 1:2]
# OK
nameless(data[1, 1:2])
[1] 22 0

例:

output
[[1]]
       income                      
     4     36      2      3     NA 
[[2]]
    age             
  1  48   4   5  NA 

看起来有点傻,但是呢:

unname(unlist(data[1, 1:2]))
#[1] 22 0

unlist()有一个use.names参数,它将删除名称。

unlist(data[1, 1:2], use.names = FALSE)

或者,如果返回的所有内容都是同一类型,则可以使用 例如 as.integer()

as.integer(data[1, 1:2])

从@alexwhan借用unname

unname(c(data1[1,1:2]))
[1] 22  0

最新更新