我一直對R中變量類型感到困惑。現在我在轉置數據幀後遇到了一個問題。轉置數據幀後R變量類型發生變化
例如,我使用table()
得到各因子的數量在一定的載體:
data(iris)
count <- as.data.frame(table(iris$Species))
typeof(count$Var1)
# [1] "integer"
typeof(count$Freq)
# [1] "integer"
我的第一個問題是,爲什麼count$Var1
「整數」?字符串是否也可以是「整數」?但這並不重要,因爲我可以通過count$Var1 <- as.character(count$Var1)
更改類型,然後typeof(count$Var1)
變成「字符」。
現在我轉置此數據幀transposed_count <- as.data.frame(t(count))
。但我感到困惑,因爲:
typeof(transposed_count[1,])
[1] "list"
typeof(transposed_count[2,])
[1] "list"
transposed_count[2,]
V1 V2 V3
Freq 50 50 50
對於後續的使用,我需要transposed_count[2,]
是一個數值向量,如:
transposed_count[2,]
[1] 50 50 50
我怎麼能這樣做?爲什麼他們成爲t()
之後的「名單」?對不起,如果這是一個愚蠢的問題。謝謝!
感謝您的解釋!對我來說變得更加清晰。但是,我怎樣才能得到一個「轉置」的數據框呢? – Yan
我正在讀一堆文件,每個文件作爲每個樣本。最後,我需要一個數據框,其中行是樣本,列是每個文件/樣本中每個元素的數量。所以在我讀完所有的樣本之後,我會去掉所有的數據框。這就是爲什麼我需要它轉置。我將把「Var1」作爲最終數據框的名稱。 – Yan
正如@RomanLuštrik推斷的那樣,您可能正在從'reshape2'庫中尋找類似'dcast(melt(count),...〜Var1)'的東西。但是,根據您的分析結果,更自然的形狀可能是以原始格式「綁定」數據,並添加具有文件/樣本指標的另一列。這會給你一個「堆疊」的格式。 –