2

鉴于此数据:

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 
4

3 回答 3

3

看起来有点傻,但是怎么样:

unname(unlist(data[1, 1:2]))
#[1] 22 0
于 2013-10-01T12:57:52.467 回答
2

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

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

或者,如果返回的所有内容都属于同一类型,您可以as.integer()在其上使用例如:

as.integer(data[1, 1:2])
于 2013-10-01T13:28:03.577 回答
0

借用unname@alexwhan

unname(c(data1[1,1:2]))
[1] 22  0
于 2013-10-01T13:38:34.367 回答