R 如何读取一列中有空格分隔的数字的csv文件

R 如何读取一列中有空格分隔的数字的csv文件,r,csv,R,Csv,如何读取两列csv文件,其中列由逗号分隔,但第二列有一组由空格分隔的数字?另一个问题是,第二列中的值的数量变化很大,所以我不知道如何适应R中的值。我在MATLAB中使用了一个单元格数组,但我不知道接下来在R中要做什么。如果有帮助,我只对第二列感兴趣,我想对它进行运算(例如:列和、标准偏差等) 提前感谢。一个选项是使用read.csv读取数据集,然后使用cSplit从splitstackshape library(splitstackshape) cSplit(dat, 'Col2', sep

如何读取两列csv文件,其中列由逗号分隔,但第二列有一组由空格分隔的数字?另一个问题是,第二列中的值的数量变化很大,所以我不知道如何适应R中的值。我在MATLAB中使用了一个单元格数组,但我不知道接下来在R中要做什么。如果有帮助,我只对第二列感兴趣,我想对它进行运算(例如:列和、标准偏差等)


提前感谢。

一个选项是使用
read.csv
读取数据集,然后使用
cSplit
splitstackshape

 library(splitstackshape)
 cSplit(dat, 'Col2', sep=' ')
 #   Col1 Col2_1 Col2_2 Col2_3 Col2_4 Col2_5 Col2_6
 #1:   25     35    -24    325      2      7      9
 #2:   28     24      8      9     10     11     NA
或者您可以将
更改为
,然后使用
read.table
fill=TRUE

 read.table(text=gsub(',', ' ', readLines('spaceSep.csv')),
                                    sep='', skip=1, fill=TRUE)

 # V1 V2  V3  V4 V5 V6 V7
 #1 25 35 -24 325  2  7  9
 #2 28 24   8   9 10 11 NA
如果不需要第一列

dat1 <- read.table(text=gsub(".*,", "", readLines('spaceSep.csv')),
                                                 skip=1, fill=TRUE) 
数据
dat一个选项是使用
read.csv
读取数据集,然后使用
cSplit
splitstackshape

 library(splitstackshape)
 cSplit(dat, 'Col2', sep=' ')
 #   Col1 Col2_1 Col2_2 Col2_3 Col2_4 Col2_5 Col2_6
 #1:   25     35    -24    325      2      7      9
 #2:   28     24      8      9     10     11     NA
或者您可以将
更改为
,然后使用
read.table
fill=TRUE

 read.table(text=gsub(',', ' ', readLines('spaceSep.csv')),
                                    sep='', skip=1, fill=TRUE)

 # V1 V2  V3  V4 V5 V6 V7
 #1 25 35 -24 325  2  7  9
 #2 28 24   8   9 10 11 NA
如果不需要第一列

dat1 <- read.table(text=gsub(".*,", "", readLines('spaceSep.csv')),
                                                 skip=1, fill=TRUE) 
数据
dat一个选项是使用
read.csv
读取数据集,然后使用
cSplit
splitstackshape

 library(splitstackshape)
 cSplit(dat, 'Col2', sep=' ')
 #   Col1 Col2_1 Col2_2 Col2_3 Col2_4 Col2_5 Col2_6
 #1:   25     35    -24    325      2      7      9
 #2:   28     24      8      9     10     11     NA
或者您可以将
更改为
,然后使用
read.table
fill=TRUE

 read.table(text=gsub(',', ' ', readLines('spaceSep.csv')),
                                    sep='', skip=1, fill=TRUE)

 # V1 V2  V3  V4 V5 V6 V7
 #1 25 35 -24 325  2  7  9
 #2 28 24   8   9 10 11 NA
如果不需要第一列

dat1 <- read.table(text=gsub(".*,", "", readLines('spaceSep.csv')),
                                                 skip=1, fill=TRUE) 
数据
dat一个选项是使用
read.csv
读取数据集,然后使用
cSplit
splitstackshape

 library(splitstackshape)
 cSplit(dat, 'Col2', sep=' ')
 #   Col1 Col2_1 Col2_2 Col2_3 Col2_4 Col2_5 Col2_6
 #1:   25     35    -24    325      2      7      9
 #2:   28     24      8      9     10     11     NA
或者您可以将
更改为
,然后使用
read.table
fill=TRUE

 read.table(text=gsub(',', ' ', readLines('spaceSep.csv')),
                                    sep='', skip=1, fill=TRUE)

 # V1 V2  V3  V4 V5 V6 V7
 #1 25 35 -24 325  2  7  9
 #2 28 24   8   9 10 11 NA
如果不需要第一列

dat1 <- read.table(text=gsub(".*,", "", readLines('spaceSep.csv')),
                                                 skip=1, fill=TRUE) 
数据
dat只需将空格改为逗号(例如,在Linux:sed s/,/g 1.txt中,或者只需使用记事本并替换所有空格)!然后通过read.csv读取它。

只需将空格改为逗号(例如,在Linux中:sed s/,/g 1.txt或使用记事本替换所有空格)!然后通过read.csv读取它。

只需将空格改为逗号(例如,在Linux中:sed s/,/g 1.txt或使用记事本替换所有空格)!然后通过read.csv读取它。

只需将空格改为逗号(例如,在Linux中:sed s/,/g 1.txt或使用记事本替换所有空格)!然后通过read.csv阅读。

谢谢,效果很好!所有不同的解决方案都是惊人的!我想投你一票,但我没有足够的分数,我一拿到分数就去做。谢谢,效果很好!所有不同的解决方案都是惊人的!我想投你一票,但我没有足够的分数,我一拿到分数就去做。谢谢,效果很好!所有不同的解决方案都是惊人的!我想投你一票,但我没有足够的分数,我一拿到分数就去做。谢谢,效果很好!所有不同的解决方案都是惊人的!我想投你一票,但我没有足够的分数,我一拿到分数就去做。