给定此数据:
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