1
我有一個字符串矩陣,其中的字段是以科學記數法中的數字派生的。我想將字符矩陣轉換爲數據框並處理數字字段。在矩陣到數據幀的轉換過程中,R將字符串轉換爲因子,可能是因爲數字中間的'e'字符。如果stringAsFactors()選項設置爲FALSE,則這些列將保留爲字符,因此仍然不是數字。R數據框:如何控制包含科學記數法字符串的矩陣轉換爲數字
例如:
> m
[,1] [,2]
[1,] "1e-07" "4e-06"
[2,] "2e-05" "5e-05"
[3,] "0.03" "1e-07"
> data.frame(m)
X1 X2
1 1e-07 4e-06
2 2e-05 5e-05
3 0.03 1e-07
> class(data.frame(m))
[1] "data.frame"
> df = data.frame(m)
> df
X1 X2
1 1e-07 4e-06
2 2e-05 5e-05
3 0.03 1e-07
> class(df$X1)
[1] "factor"
> class(df$X2)
[1] "factor"
我怎樣才能迫使數據幀來解釋這些字符串的數字嗎? data.matrix()實際上是將科學記數法中的字符串轉換爲數字,但我想知道是否有辦法直接控制字符矩陣轉換爲數據幀,而無需經過中間的data.matrix()轉換步驟。
是的,這就是我使用data.matrix()所做的。有沒有辦法避免矩陣轉換步驟?數據幀轉換在沒有涉及科學記數法的情況下將字符串數字轉換爲數字。 – 2012-01-14 22:51:49
...你需要提供一個這樣的例子。我無法重現這一點。我更新了上面的例子 - 並沒有涉及科學記數法。 'as.data.frame'仍然會生成因子或字符串列... – Tommy 2012-01-14 22:59:19
請參閱編輯的擴展示例 – 2012-01-15 20:44:38