我有一个列表“cluster_features”,这是它的样子:
> cluster_features[1:3]
$cluster1
dui control physic dui_physic physic_control alcohol
281673 10759 10756 10756 10756 2917
$cluster2
investig auto investig_auto death death_investig non-crim
41964 17445 17445 2815 2815 920
investig_non-crim fire fire_investig
920 580 503
$cluster3
assist agenc agenc_assist assist_other public motorist motorist_assist
98605 29118 18968 16655 16107 10261 8354
fire assist_public servic public_assist call general general_assist
7047 6952 6105 5679 5642 5630 5306
servic_call cad assist_fire escort assist_escort escort_servic
5303 5259 4965 4954 4954 4954
生成者:
dput(cluster_features[1:3])
structure(list(cluster1 = structure(c(281673, 10759, 10756, 10756,
10756, 2917), .Names = c("dui", "control", "physic", "dui_physic",
"physic_control", "alcohol")), cluster2 = structure(c(41964,
17445, 17445, 2815, 2815, 920, 920, 580, 503), .Names = c("investig",
"auto", "investig_auto", "death", "death_investig", "non-crim",
"investig_non-crim", "fire", "fire_investig")), cluster3 = structure(c(98605,
29118, 18968, 16655, 16107, 10261, 8354, 7047, 6952, 6105, 5679,
5642, 5630, 5306, 5303, 5259, 4965, 4954, 4954, 4954), .Names = c("assist",
"agenc", "agenc_assist", "assist_other", "public", "motorist",
"motorist_assist", "fire", "assist_public", "servic", "public_assist",
"call", "general", "general_assist", "servic_call", "cad", "assist_fire",
"escort", "assist_escort", "escort_servic"))), .Names = c("cluster1",
"cluster2", "cluster3"))
我的目标是使用类似格式的数据导出到csv。也就是说,也许columnA是键,然后列b键的所有值。所以看起来像是这个:
我试过了:
x <- do.call("rbind", lapply(cluster_features, as.data.frame))
但结果将所有内容都放在一列中,如下所示:
head(x)
X[[i]]
cluster1.dui 281673
cluster1.control 10759
cluster1.physic 10756
cluster1.dui_physic 10756
cluster1.physic_control 10756
cluster1.alcohol 2917
有没有办法以屏幕截图的格式将我的列表导出为csv?一列中的键,另一列中的值?
答案 0 :(得分:1)
如果我理解正确,你有一个命名向量列表,&amp;您希望将每个向量转换为名称和列表的2列数据框。值。试试这个:
result <- lapply(seq_along(cluster_features),
function(i){data.frame(source = paste0("cluster", i),
key = names(cf[[i]]),
value = cf[[i]])}) %>%
data.table::rbindlist()
> head(result)
source key value
1: cluster1 dui 281673
2: cluster1 control 10759
3: cluster1 physic 10756
4: cluster1 dui_physic 10756
5: cluster1 physic_control 10756
6: cluster1 alcohol 2917
如果您不需要区分来源,可以跳过数据框中的第一列。