如何将每一行或观察结果写为 R 中的单个文件
How to write each row or observation out as an individual file in R
我需要将每一行写成 csv。
示例数据:
myData <- structure(list(SID = c(200101L, 200102L, 200201L, 200202L, 200203L
), pr_1979_01_01 = c(11.0536289215088, 11.0536289215088, 7.78615140914917,
7.78615140914917, 7.78615140914917), pr_1979_01_02 = c(10.554141998291,
10.554141998291, 11.3847818374634, 11.3847818374634, 11.3847818374634
), pr_1979_01_03 = c(0, 0, 0, 0, 0), pr_1979_01_04 = c(0.453366577625275,
0.453366577625275, 0.38262751698494, 0.38262751698494, 0.38262751698494
)), .Names = c("SID", "pr_1979_01_01", "pr_1979_01_02", "pr_1979_01_03",
"pr_1979_01_04"), class = c("tbl_df", "data.frame"), row.names = c(NA,
-5L))
我知道我可以使用 subset()
或 dplyr::filter()
,但我有几百行和几千列。我怎样才能使它自动化?
我们使用 lapply
遍历数据集的行序列,对数据集的行进行子集化,然后在每一行上使用 write.csv
lapply(seq_len(nrow(myData)), function(i)
write.csv(myData[i,], paste0('SID', i, '.csv'),
row.names=FALSE, quote=FALSE))
编辑
要使用列中的名称写入文件,例如站点 ID,请创建所述列的向量。
SID <- myData$SID
然后使用以下内容:
lapply(seq_len(nrow(myData)), function(i)
write.csv(myData[i,], paste0(SID[i], '.csv'),
row.names=FALSE, quote=FALSE))
注意粘贴参数的区别:
paste0(SID[i], i, '.csv')
对比
paste0(SID[i], '.csv')
我需要将每一行写成 csv。 示例数据:
myData <- structure(list(SID = c(200101L, 200102L, 200201L, 200202L, 200203L
), pr_1979_01_01 = c(11.0536289215088, 11.0536289215088, 7.78615140914917,
7.78615140914917, 7.78615140914917), pr_1979_01_02 = c(10.554141998291,
10.554141998291, 11.3847818374634, 11.3847818374634, 11.3847818374634
), pr_1979_01_03 = c(0, 0, 0, 0, 0), pr_1979_01_04 = c(0.453366577625275,
0.453366577625275, 0.38262751698494, 0.38262751698494, 0.38262751698494
)), .Names = c("SID", "pr_1979_01_01", "pr_1979_01_02", "pr_1979_01_03",
"pr_1979_01_04"), class = c("tbl_df", "data.frame"), row.names = c(NA,
-5L))
我知道我可以使用 subset()
或 dplyr::filter()
,但我有几百行和几千列。我怎样才能使它自动化?
我们使用 lapply
遍历数据集的行序列,对数据集的行进行子集化,然后在每一行上使用 write.csv
lapply(seq_len(nrow(myData)), function(i)
write.csv(myData[i,], paste0('SID', i, '.csv'),
row.names=FALSE, quote=FALSE))
编辑
要使用列中的名称写入文件,例如站点 ID,请创建所述列的向量。
SID <- myData$SID
然后使用以下内容:
lapply(seq_len(nrow(myData)), function(i)
write.csv(myData[i,], paste0(SID[i], '.csv'),
row.names=FALSE, quote=FALSE))
注意粘贴参数的区别:
paste0(SID[i], i, '.csv')
对比
paste0(SID[i], '.csv')