5
如果我用矩陣索引所有整數的data.frame,我會得到預期的結果。爲什麼在用數字矩陣索引數據框時類會從整數更改爲字符?
df <- data.frame(c1=1:4, c2=5:8)
df1
# c1 c2
#1 1 5
#2 2 6
#3 3 7
#4 4 8
df1[matrix(c(1:4,1,2,1,2), nrow=4)]
# [1] 1 6 3 8
如果data.frame有一列字符,結果是所有字符,即使我只是索引整數列。
df2 <- data.frame(c0=letters[1:4], c1=1:4, c2=5:8)
df2
# c0 c1 c2
#1 a 1 5
#2 b 2 6
#3 c 3 7
#4 d 4 8
df2[matrix(c(1:4,2,3,2,3), nrow=4)]
# [1] "1" "6" "3" "8"
class(df[matrix(c(1:4,2,3,2,3), nrow=4)])
# [1] "character"
df2[1,2]
# [1] 1
我最好的猜測是R太忙,無法通過答案來檢查它們是否都來自某個類。任何人都可以解釋爲什麼發生這種情況?