我是R的新手,我想请一些帮助。 所以我有一个txt文件,里面的数据如下所示:
14853 C001 1 Apples Apples
14854 BX0 0 Oranges Oranges
14855 F00058 0 Apples and Oranges in the, basket Apples and Oranges in the, [basket]
所有列都是无头的,我试图在像这样的列的数据框中组织它们:
'14853' 'C001' '1' 'Apples' 'Apples'
'14854' 'BX0' '0' 'Oranges' 'Oranges'
'14855' 'F00058' '0' 'Apples and Oranges in the, basket' 'Apples and Oranges in the, [basket]'
无论如何使用R?
来做到这一点我使用read.table()
,fread()
,scan()
等尝试过很多不同的事情......
答案 0 :(得分:1)
为了解析输入文件,您需要确定文件的列宽。正如@thelatemail所述,您有固定宽度格式,可以使用base
函数read.fwf
来解决。
我在下面提供readr解决方案:
library(readr)
txt <- paste(
"14853 C001 1 Apples Apples",
"14854 BX0 0 Oranges Oranges",
"14855 F00058 0 Apples and Oranges in the, basket Apples and Oranges in the, [basket]",
sep = "\n"
)
df <- read_fwf(txt, fwf_widths(c(6, 7, 2, 60, 36)))
# # A tibble: 3 x 5
# X1 X2 X3 X4 X5
# <int> <chr> <int> <chr> <chr>
# 1 14853 C001 1 Apples Apples
# 2 14854 BX0 0 Oranges Oranges
# 3 14855 F00058 0 Apples and Oranges in the, basket Apples and Oranges in the, [basket]
N.B。您必须考虑固定宽度的空白区域,因为没有其他分隔符。另请注意,列类型将猜测使用与系列中其他函数相同的逻辑,例如
read_csv
,或者使用col_types
。col_names
参数将允许您提供名称,因为它们在您的输入中不可用。