我想要实现的是将一个R哈希表写入csv文件excel(第一列中的格式化文件密钥列和第二列中的值)。请考虑这个例子。 (哈希表由哈希包创建)
<hash> containing 5 key-value pair(s).
1 : 4
2 : NULL
3 : NULL
4 : 3 1
5 : 1 4
当我只是使用这个
write.csv(hash, file = "hash.csv",row.names=FALSE)
它给了我这个错误
Error in as.data.frame.default(x[[i]], optional = TRUE) :
cannot coerce class "structure("hash", package = "hash")" to a data.frame
所以我尝试从每个键和值创建一个数据帧,然后绑定它们:
a<-as.data.frame(keys(hash))
b<-as.data.frame(values(hash))
Error in data.frame(`1` = "4", `2` = NULL, `3` = NULL, `4` = c("3", "1" :
arguments imply differing number of rows: 1, 0, 2
然后创建一个列表和一个向量:
a<-keys(hash)
b<-values(hash)
d<-cbind(a,b)
f<-as.data.frame(d)
a b
1 1 4
2 2 NULL
3 3 NULL
4 4 3, 1
5 5 1, 4
但是当我尝试写它时:
write.csv(f, file = "hash.csv",row.names=FALSE)
Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol, :
unimplemented type 'list' in 'EncodeElement'
有没有其他方法可以做到这一点或以任何方式来解决这个错误? 提前谢谢你。
答案 0 :(得分:0)
这对我有所帮助。但由于我正在寻找更好的解决方案,这还不是我的问题的答案。
a<-keys(hash)
b<-values(hash)
d<-cbind(a,b)
L<-as.data.frame(d)
L.df <- data.frame(lapply(L, as.character), stringsAsFactors=FALSE)
write.csv(f.df, file ="file.CSV",row.names=FALSE)
csv file format
# a b
# 1 4
# 2 NULL
# 3 NULL
# 4 c("3", "1")
# 5 c("1", "4")