gpt4 book ai didi

r - read.csv() 的输出

转载 作者:行者123 更新时间:2023-12-04 20:36:02 25 4
gpt4 key购买 nike

我一直在尝试将 csv 加载到 R 中进行一些处理,但是在尝试读取数据本身时遇到了一个奇怪的问题。

csv 没有任何标题,我使用以下简单代码来读取数据

newClick <- read.csv("test.csv", header = F)

以下是示例数据集:
10000011791441224671,V_Display,exit
10000011951441812316,V_Display,exit
10000013211441319797,V_Display,exit
1000001331441725509,V_Display,exit
10000013681418242863,C_GoogleNonBrand,V_Display,V_Display,V_Display,V_Display,_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,exit
10000014031441295393,V_Display,exit

此数据的输出是 6 个 obs 的预期数据帧。 18 个变量。

然而,这是棘手的部分。如果我在数据集中添加另一行,如
10000011791441224671,V_Display,exit
10000011951441812316,V_Display,exit
1000000191441228436,V_Display,exit
10000013211441319797,V_Display,exit
1000001331441725509,V_Display,exit
10000013681418242863,C_GoogleNonBrand,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,exit
10000014031441295393,V_Display,exit

这个输出是一个奇怪的 12 个 obs 的 3 个变量。仔分割析后,我意识到整个倒数第二行被分成 6 行,每行三列,这很奇怪。

对此有何想法?

最佳答案

正如评论中提到的,发生这种情况是因为列数由输入的前五行决定。如果您遇到问题,这里有一个可能的解决方法,我已经测试过并且似乎运行良好。秘诀是为 col.names 输入一个向量。即数据中列数的长度。我们可以使用 count.fields() 获得列数.插入您的文件名 file .

## get the number of columns
ncols <- max(count.fields(file, sep = ","))
## read the data with all columns as character
df <- read.csv(file, header = FALSE, col.names = paste0("V", seq_len(ncols)))

这是带有您的数据的经过测试的代码:
txt <- "10000011791441224671,V_Display,exit\n10000011951441812316,V_Display,exit\n1000000191441228436,V_Display,exit\n10000013211441319797,V_Display,exit\n1000001331441725509,V_Display,exit\n10000013681418242863,C_GoogleNonBrand,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,V_Display,exit\n10000014031441295393,V_Display,exit"

ncols <- max(count.fields(textConnection(txt), sep = ","))
df <- read.csv(text = txt, header = FALSE, col.names = paste0("V", seq_len(ncols)))
dim(df)
# [1] 7 18

关于r - read.csv() 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450021/

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