读取R中的数据集,其中逗号用于字段分隔符和小数点

cMi*_*nor 9 load r matrix dataset

你怎么能读到这个数据集R,问题是这些数字是浮点数,它们是相似的4,000000059604644E+16 ,它们用a分隔,

4,000000059604644E-16 ,  7,999997138977056E-16,   9,000002145767216E-16
4,999999403953552E-16 ,  6,99999988079071E-16 ,   0,099999904632568E-16
9,999997615814208E-16 ,  4,30000066757202E-16 ,   3,630000114440918E-16
0,69999933242798E-16  ,  0,099999904632568E-16,  55,657576767799999E-16 
3,999999761581424E-16,   1,9900000095367432E-16,  0,199999809265136E-16
Run Code Online (Sandbox Code Playgroud)

你如何在R中加载这个kinf数据集,所以它有3列.

如果我做

dataset <- read.csv("C:\\data.txt",header=T,row.names=NULL)
Run Code Online (Sandbox Code Playgroud)

它将返回6列而不是3 ...

Dav*_*ber 4

最好将输入数据转换为在浮点数中使用小数点,而不是逗号。实现此目的的一种方法是使用 sed(看起来您使用的是 Windows,因此您可能需要 sed 才能使用此方法):

sed 's/\([0-9]\),\([0-9]\)/\1.\2/g' data.txt  > data2.txt
Run Code Online (Sandbox Code Playgroud)

文件data2看起来像这样:

4.000000059604644E-16 ,  7.999997138977056E-16,   9.000002145767216E-16
4.999999403953552E-16 ,  6.99999988079071E-16 ,   0.099999904632568E-16
9.999997615814208E-16 ,  4.30000066757202E-16 ,   3.630000114440918E-16
0.69999933242798E-16  ,  0.099999904632568E-16,  55.657576767799999E-16 
3.999999761581424E-16,   1.9900000095367432E-16,  0.199999809265136E-16
Run Code Online (Sandbox Code Playgroud)

然后在R中:

dataset <- read.csv("data2.txt",row.names=NULL)
Run Code Online (Sandbox Code Playgroud)