我正在尝试将以下格式(作为文本文件)的数据加载到R中:
我遇到的问题是,“列”之间用空格分隔,以便它们都能很好地对齐,但是一行可能在值之间有5个空格,而下一行则有10个空格。因此,当我使用
作为第一次观察等等。
我能否采取以下任一方式:
1. 将数据加载到R中并转换为可用格式? 2. 一旦我将其加载到一个列格式中,就将字符字符串拆分成单独的列?
我的想法是通过空格拆分字符字符串,但需要在2到x个空格之间(因此,“United Kingdom”保持不变,不会变成“United”“”“Kingdom”)。但我不知道这是否可能。
我尝试了
“我不知道如何处理它。”
Name Country Age
John,Smith United Kingdom 20
Washington,George USA 50
Martin,Joseph Argentina 43
我遇到的问题是,“列”之间用空格分隔,以便它们都能很好地对齐,但是一行可能在值之间有5个空格,而下一行则有10个空格。因此,当我使用
read.delim
加载时,我会得到一个只有一列的数据框。"John,Smith United Kingdom 20"
作为第一次观察等等。
我能否采取以下任一方式:
1. 将数据加载到R中并转换为可用格式? 2. 一旦我将其加载到一个列格式中,就将字符字符串拆分成单独的列?
我的想法是通过空格拆分字符字符串,但需要在2到x个空格之间(因此,“United Kingdom”保持不变,不会变成“United”“”“Kingdom”)。但我不知道这是否可能。
我尝试了
strsplit(data.frame[,1], sep="\\s")
但它返回一组像这样的字符字符串:"John,Smith" "" "" "" "" "" "" "" "United" "" "Kingdom" "" ""...
“我不知道如何处理它。”
read.fwf
(或"readr"包中的read_fwf
)代替。 - A5C1D2H2I1M1N2O1R2T1'\\s{2,}'
,例如rl <- readLines('~/desktop/txt'); do.call('rbind', strsplit(rl, '\\s{2,}'))
,但是read.fwf是正确的方式。 - rawrsep
(或者至少是一个量词)?还是我只能使用strsplit
? - alistaireread.pattern
? - A5C1D2H2I1M1N2O1R2T1