[英]Import data from a subset of subjects in R
我正在處理一個包含3億行的數據集,分為5個csv文件。 該數據包含5年內用戶的體重測量值(每年一個文件)。 由於計算需要花費大量時間,因此我想與一部分用戶一起創建代碼。 我使用nrows函數僅導入每個文件的前50000行。 但是,一個用戶在2014年的文件中可能有400個體重測量值,而在2015年的文件中只有240個體重測量值。因此,當我使用nrows函數導入時,從每個文件中得到的用戶數都不相同。 我想知道是否有一種方法可以導入每個文件中前1000個用戶的數據? 所有文件中的數據如下所示:
user_ID date_local weight_kg
0002a3e897bd47a575a720b84aad6e01632d2069 2016-01-07 99.2
0002a3e897bd47a575a720b84aad6e01632d2069 2016-02-08 99.6
0002a3e897bd47a575a720b84aad6e01632d2069 2016-02-10 99.5
000115ff92b4f18452df4a1e5806d4dd771de64c 2016-03-13 99.1
000115ff92b4f18452df4a1e5806d4dd771de64c 2016-04-20 78.2
000115ff92b4f18452df4a1e5806d4dd771de64c 2016-05-02 78.3
000115ff92b4f18452df4a1e5806d4dd771de64c 2016-05-07 78.9
0002b526e65ecdd01f3a373988e63a44d034c5d4 2016-08-15 82.1
0002b526e65ecdd01f3a373988e63a44d034c5d4 2016-08-22 82.6
在此先多謝!
如果您的系統上有grep
,則可以將其與pipe
和read.table
結合使用,以僅讀取與模式匹配的行。 例如,使用示例數據,您只能讀取這樣的用戶001和002。 您需要稍后再添加標題,因為它們與模式不匹配。
mydata <- read.csv(pipe('grep "^00[12]" "mydata.csv"'),
colClasses = c("character", "Date", "numeric"),
header = FALSE)
我不確定您的user_ID
的模式是什么:您以001為例,但指出您想要第一個1000。如果是0001-1000,則grep
的模式可能類似於^[01][0-9]{3}
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.