Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

export - Exporting an R Spread Table

I'm new to R, but have had some initial success grabbing data (gwlevel) and then using the "spread function" to put into a spread table (gwlevel_spread).

My problem is that I can easily export the "gwlevel" table, as follows:

write.table(gwlevel, file = "c:/BOB/r/export/zz_jnk.csv")

However, I keep getting an error when I try to export the "gwlevel_spread" file, as follows:

write.table(gwlevel_spread,"c:/BOB/r/export/zz_jnk.csv",sep=",") Error in write.table(gwlevel_spread, "c:/BOB/r/export/zz_jnk.csv", sep = ",") : unimplemented type 'list' in 'EncodeElement'

(1) Can anybody tell me the reason? (2) Or is there a better way I should be doing it?

question from:https://stackoverflow.com/questions/65855699/exporting-an-r-spread-table

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

That probably means that you have some list columns in your data which cannot be exported to csv. You can collapse the list column to one comma-separated string before writing it to csv.

If the list column is called col you can do :

gwlevel_spread$col <- sapply(gwlevel_spread$col, toString)

If you don't know which column is list or have many columns that are of list class in your data you can use condition in lapply

gwlevel_spread[] <- lapply(gwlevel_spread, function(x) 
                          if('list' %in% class(x)) sapply(x, toString) else x)

and then write to csv using write.table or write.csv :

write.table(gwlevel_spread, file = "c:/BOB/r/export/zz_jnk.csv")

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...