假設我有一個樣本csv文件,它有3行4列。說它看上去像下面這樣:將fread函數讀入的數據轉換爲data.frame
name1 name2 name3 name4
11 12 13 14
21 22 23 24
31 32 33 34
我使用fread()
讀它(我使用的用於說明目的的小樣本):
data <- fread(sample.csv, stringsAsFactors=FALSE)
然後我做
class(data)
它將返回
[1] "data.table" "data.frame"
我想看第四列的第一個元素,我試圖
data[1,4]
但它返回4(我想是列的索引)。
有趣的是,當我打電話以下
data[1,]
或
data[1]
返回的第一行。
所以我做
data <- data.frame(data)
把數據轉換爲數據幀。
我的問題:
1.由於最初的數據有兩個類,有沒有辦法讓我選擇一個類而「放下」另一個類?就我而言,我只是想用數據作爲數據框。
2.一般來說,如果數據有多個類別,我們可以選擇一個類別來保存嗎?例如,as.POSIXct()
將返回一個具有兩個類的對象(「POSIXct」「POSIXt」)。如果我們只想保留其中一個類,該怎麼辦?任何函數都可以以通用的方式用於此目的?
你可以用'data.table = FALSE'在'FREAD()'常規數據幀。其他函數是'class < - ()','oldClass()','unclass()','help(class)'等。但是您可能不想從日期時間中刪除'POSIXt',因爲它可能會產生意想不到的後果 –
很好解決。謝謝。 – Rwitch
值得一提的是,'data [1,4]'將在未來的data.table迭代中表現得如您所期望的那樣。 – Frank