相关疑难解决方法(0)

如何在R中读取具有不同列数的CSV文件

我有一个稀疏数据集,其列数以csv格式变化.以下是文件文本的示例.

12223, University
12227, bridge, Sky
12828, Sunset
13801, Ground
14853, Tranceamerica
14854, San Francisco
15595, shibuya, Shrine
16126, fog, San Francisco
16520, California, ocean, summer, golden gate, beach, San Francisco
Run Code Online (Sandbox Code Playgroud)

我用的时候

read.csv("data.txt", header = F)
Run Code Online (Sandbox Code Playgroud)

R将数据集解释为具有3列,因为大小是从前5行确定的.无论如何强制r将数据放在更多列中?

csv import r read.table sparse-columns

41
推荐指数
2
解决办法
3万
查看次数

如何只读取文件中的选择列到R?(`read.table`和`scan`之间的一个愉快的媒介?)

我有一些非常大的分隔数据文件,我想只处理R中的某些列而不花时间和内存来创建data.frame整个文件.

我所知道的唯一选择是read.table,当我只想要几列或者scan看起来我想要的水平太低时非常浪费.

有没有更好的选择,无论是使用纯R还是调用其他shell脚本来进行列提取,然后在其输出上使用scan或read.table?(这导致了如何调用shell脚本并在R中捕获其输出的问题).

r delimited data-processing read.table

40
推荐指数
3
解决办法
7万
查看次数

如何跳过阅读器中的某些列

我有一个名为"test.csv"的简单csv文件,其中包含以下内容:

colA,colB,colC
1,"x",12
2,"y",34
3,"z",56
Run Code Online (Sandbox Code Playgroud)

假设我想跳过colA读取,只读colB和colC.我想要一个通用的方法来做这个,因为我有很多文件要读入,有时colA被称为其他东西,但colB和colC总是相同的.

根据read_csv文档,实现此目的的一种方法是为col_types传递命名列表,并仅命名要保留的列:

read_csv('test.csv', col_types = list(colB = col_character(), colC = col_numeric()))
Run Code Online (Sandbox Code Playgroud)

如果不提及colA,它应该从输出中删除.但是,结果数据框是:

Source: local data frame [3 x 3]

      colA colB colC
    1    1    x   12
    2    2    y   34
    3    3    z   56
Run Code Online (Sandbox Code Playgroud)

我做错了什么或read_csv文档不正确?根据帮助文件:

如果是列表,则每列必须包含一个"收集器".如果您只想读取列的子集,则可以使用命名列表(其中名称给出列名称).如果未按名称提及列,则不会将其包含在输出中.

r readr

19
推荐指数
2
解决办法
1万
查看次数

如何在R str()中扩展Posixct字段?

我正在尝试扩展一个自定义Posixct字段中显示的因子数量,其中normal way(str(DF, list.len=ncol(DF), vec.len=20))不起作用.我在这里请求20,但它始终显示两个("2017-01-01 08:40:00" "2017-01-01 08:50:00" ...),无论列表的长度(这里3).数据data.csv

"AAA", "BBB"
1, 01012017-0940+0100
2, 01012017-0950+0100
3, 01012017-0838+0100
Run Code Online (Sandbox Code Playgroud)

library('methods') # setClass

# https://unix.stackexchange.com/a/363290/16920
setClass('iso8601')

# https://stackoverflow.com/questions/5788117/only-read-limited-number-of-columns
setAs("character","iso8601",function(from) strptime(from,format="%d%m%Y-%H%M%z"))

DF <- read.csv(file='data.csv',
        sep=',',
        header=TRUE,
        colClasses=c('numeric','iso8601'),
        strip.white=TRUE)

DF

str(DF, list.len=ncol(DF), vec.len=20)
Run Code Online (Sandbox Code Playgroud)

R 3.3.3中的输出

 AAA                 BBB
1  1 2017-01-01 08:40:00
2  2 2017-01-01 08:50:00
3  3 2017-01-01 07:38:00
'data.frame':  3 obs. of  2 variables:
 $ AAA : num  1 2 3
 $ BBB : POSIXlt, format: "2017-01-01 …
Run Code Online (Sandbox Code Playgroud)

r posixct

12
推荐指数
1
解决办法
387
查看次数

r - read.csv - 跳过具有不同列数的行

我的csv文件顶部有5行作为有关该文件的信息,我不需要这些行.

这些信息行只有2列,而标题和数据行(来自6个on-wards)有8个.这似乎是问题的原因.

我尝试使用read.csv中的skip函数跳过这些行,read.table也是如此

df = read.csv("myfile.csv", skip=5)
df = read.table("myfile.csv", skip=5)
Run Code Online (Sandbox Code Playgroud)

但这仍然给我相同的错误信息,即:

Error in read.table("myfile.csv",  :empty beginning of file
Run Code Online (Sandbox Code Playgroud)

另外:警告信息:

1: In readLines(file, skip) : line 1 appears to contain an embedded nul
2: In readLines(file, skip) : line 2 appears to contain an embedded nul
...
5: In readLines(file, skip) : line 5 appears to contain an embedded nul
Run Code Online (Sandbox Code Playgroud)

如何在没有前5行中的空值的情况下将此.csv读入r中导致此问题?

csv null r skip

7
推荐指数
1
解决办法
1万
查看次数

使用 read.csv 跳过 r 中的最后一列

我在那个帖子read.csv 并跳过 R 中的最后一列但没有找到我的答案,并尝试直接检查答案...但这不是正确的方法(感谢mjuarez花时间让我回到正轨.

原来的问题是:

我已经阅读了其他几篇关于如何使用 read.csv 导入 csv 文件但跳过特定列的文章。但是,我发现的所有示例的列都很少,因此很容易执行以下操作:

 columnHeaders <- c("column1", "column2", "column_to_skip")
 columnClasses <- c("numeric", "numeric", "NULL")
 data <- read.csv(fileCSV, header = FALSE, sep = ",", col.names = 
 columnHeaders, colClasses = columnClasses)
Run Code Online (Sandbox Code Playgroud)

所有答案都很好,但不适用于我打算做的事情。所以我问我自己和其他人:

在一个功能中,data <- read_csv(fileCSV)[,(ncol(data)-1)] 可以工作吗?

我已经尝试在一行中R继续data,前 6 列中的所有 5 列,所以不是最后一列。为此,我想在列数中使用“-”,您认为可能吗?我怎样才能做到这一点?

谢谢!

csv r read.csv

5
推荐指数
1
解决办法
5230
查看次数

read.csv() - 三列中的两列

可能重复:
仅读取R中有限数量的列

我有一个ascii-dataset,它由三列组成,但只有最后两列是实际数据.现在我想通过使用dotchart数据read.csv(file = "result1", sep= " ").R读取所有三列.我该如何避免这种情况?

r read.csv

4
推荐指数
1
解决办法
1万
查看次数

如何将 .csv 文件的特定列加载到 R?

我有一个巨大的数据集存储为 .csv 文件,它不适合内存。但是,我只需要数据集中的 3 列就可以放入内存。我怎样才能加载它们?

UPD:我可以按名称而不是按列索引选择列吗?我不知道他们的先验指数

csv r bigdata

3
推荐指数
1
解决办法
2万
查看次数

排除R中read.table()中的列

可能重复:
仅读取R中有限数量的列

我有一个数据文本文件,包含一百万个观察值和150个由分号分隔的变量(v1到v150).我只需要一些选定的变量.有没有办法只读入我需要的变量?我在用read.table("filepath/filename.txt", sep=";", header=T).如果有任何其他方式read.table()可以做到这一点?

r

1
推荐指数
1
解决办法
9188
查看次数

有没有办法在读取csv时省略第一列

可能重复:
仅读取R中有限数量的列

我有一个非常大的csv文件,所以我只想读取R中相关的数据.csv文件宽4列,向下数百万行.但是第一列是不必要的(因为它是每行的重复字符串).

有没有办法在读取csv文件时只获得第2到第4列...(它很容易删除原来的第一列帖子读取...但是想知道是否有更有效的方法这个).

r

-2
推荐指数
1
解决办法
3万
查看次数