在R中写入列选择以按组分隔CSV

jjjwad0x  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(135)

我想从一个 Dataframe 写单独的csv,但是csv应该以一个分组变量命名,并且只包含3个特定的列(可能有很多列)。有人有什么提示吗?
这里是一个最小的例子。我想做的是为每个 subject_nr 写一个csv(命名为“101.csv”,“102.csv”等),其中csv只包含相关 subject_nritemstart_timeend_time 列。

df <- data.frame("subject_nr" = c("101", "101", "101", "102", "102", "103", "103", "103"),
             "item" = c("a", "b", "c", "a", "b", "a", "b", "c"),
             "start_time" = c(50, 52, 55, 53, 54.5, 12, 15, 17),
             "end_time" = c(51, 54, 60, 53.5, 55.5, 14, 16.5, 19),
             "extra_variable"= c("s", "t", "u", "v", "w", "x", "y", "z"))

例如,第一个 subject_nr(101)的结果csv(“101.csv”)应如下所示(没有行号或类似内容):

"item","start_time","end_time"
"a",50,51
"b",52,54
"c",55,60
qoefvg9y

qoefvg9y1#

lst <- split(df[, c("item","start_time","end_time")], df$subject_nr)
lapply(seq_along(lst), function(i){
  write.csv(lst[[i]], paste0(names(lst)[i], ".csv"), row.names=FALSE)
})

相关问题