gpt4 book ai didi

r - 写入 csv 时出错

转载 作者:行者123 更新时间:2023-12-04 09:32:50 26 4
gpt4 key购买 nike

我正在尝试将数据框写入 csv 但它似乎在提示,因为列包含列表。

我希望能够做的是访问此数据框并稍后将其调用到 R 中。我不在乎如何做到这一点(另存为文本文件等)。这是一个相当大的数据集 n=182305。任何将其写入文件的想法,我可以很快将其读入 R(我没有与 csv 文件结婚)

数据帧和我尝试过的代码

DF2<-structure(list(word = c("3-D", "4-F", "4-H'er", "4-H", "A battery", 
"a bon march"), pos.code = c("AN", "N", "N", "A", "h", "v"),
pos = list(c("A", "N"), "N", "N", "A", "h", "v"), noun = list(
TRUE, TRUE, TRUE, FALSE, FALSE, FALSE), plural = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), noun.phrase = list(
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE), verb.usually.participle = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), transitive.verb = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), intransitive.verb = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), adjective = list(
TRUE, FALSE, FALSE, TRUE, FALSE, FALSE), adverb = list(
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE), conjunction = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), preposition = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), interjection = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), pronoun = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), definite.article = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), indefinite.article = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), nominative = list(
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE)), .Names = c("word",
"pos.code", "pos", "noun", "plural", "noun.phrase", "verb.usually.participle",
"transitive.verb", "intransitive.verb", "adjective", "adverb",
"conjunction", "preposition", "interjection", "pronoun", "definite.article",
"indefinite.article", "nominative"), row.names = c(NA, 6L), class = "data.frame")

write.table(DF2, file = "mobyPOS.csv", sep = " ", col.names = TRUE,qmethod = "double")

我收到的错误消息:
> write.table(DF2, file = "mobyPOS.csv", sep = " ", col.names = TRUE,qmethod = "double")
Error in write.table(x, file, nrow(x), p, rnames, sep, eol, na, dec, as.integer(quote), :
unimplemented type 'list' in 'EncodeElement'

最佳答案

这只是为了解决评论中提到的数据框中列作为列的问题。

在示例数据的特定实例中,列表“必需”的唯一位置是 DF2$pos 中的第一个元素。 ,这是一个长度为 2 的向量。这可以使用以下代码删除:

DF2$pos[[1]] <- paste(DF2$pos[[1]],collapse = "")
newDF <- as.data.frame(lapply(DF2,unlist))

通常,数据框的比喻是行对应个案或观察单位,列对应变量。此外,这个比喻认为一个特定的观察单位对于每个变量只有一个值。从这个意义上说,它与矩阵相同,只是它可以存储不同类别的列。

显然,正如您所发现的,R 允许您打破这个比喻。这样做是否是一个好主意的问题将是特定于域和数据的。并非每个数据集都完全适合数据框比喻;有时,您会遇到一个变量,其中您测量的“值”不容易合并为单个表达式。

您将有一个选择:在您的情况下,使用 newDF相反,每次访问该值时可能需要使用字符串解析( strsplit 等)。这有时可能会很尴尬,而且它可能与您的数据心智模型不完全吻合。

另一方面,R 的大部分内容都围绕着以符合数据帧隐喻的方式存储在数据帧中的事物而构建。正如您在 write.csv 中发现的那样,如果您不遵守这些期望,则 R 的某些部分(实际上,很多部分)将不会按照您期望的方式运行。这也将需要额外的工作和尴尬。

根据我的经验,通常最好牺牲您对数据结构的先入为主的想法的纯度,而是尽最大努力以某种方式将其放入数据框架中。至少,这条路线对我来说涉及的工作较少。但没有什么是完美的。

但正如我在开头所说的,这将是非常特定于数据和领域的。天啊。

关于r - 写入 csv 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8305735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com