【发布时间】:2017-10-31 01:07:17
【问题描述】:
我想将一个大的.csv 读入 R。将它拆分为各种对象并分别处理它们会很方便。我设法通过一个while循环来做到这一点,将每十分之一分配给一个对象:
# The dataset is larger, numbers are fictitious
n <- 0
while(n < 10000){
a <- paste('a_', n, sep = '')
assign(a, read.csv('df.csv',
header = F, stringsAsFactors = F, nrows = 1000, skip = 0 + n)))
# There will be some additional processing here (omitted)
n <- n + 1000
}
是否有更类似于 R 的方式来执行此操作?我立刻想到了lapply。根据我的理解,每个对象都是列表的元素,然后我必须取消列出。
我对以下内容进行了尝试,但没有成功,我的列表只有一个元素:
A <- lapply('df.csv', read.csv,
header = F, stringsAsFactors = F, nrows = 1000, skip = seq(0, 10000, 1000))
我错过了什么?我该如何从这里开始?然后如何取消列出 A 并将列表中的每个元素指定为单独的 data.frame?
【问题讨论】:
-
library("fortunes"); fortune(236)stackoverflow.com/questions/17559390/why-is-using-assign-bad
标签: r while-loop apply lapply