问题描述
我尝试过使用 read_table 但它自动假定为 1 列。我应该如何读取数据,因为它们是按行列出的?
这是我的文本文件的样子:
Id: 0
Category: Toys
Id: 1
Category: Books
Price: 19.99
rating: 4.03
Id: 2
Category: Toys Young-Children
rating: 3
...
解决方法
您可以读取以冒号 (:
) 为分隔符的数据,并将其整形为宽格式。
我创建了一个名为 temp.txt
的新文件,其中包含您与 read.table
共享和读取的数据。
library(dplyr)
library(tidyr)
data <- read.table('temp.txt',sep = ':',strip.white = TRUE)
data %>%
mutate(row = cumsum(V1 == 'Id')) %>%
pivot_wider(names_from = V1,values_from = V2) %>%
select(-row) %>%
type.convert(as.is = TRUE)
# Id Category Price Rating
# <int> <chr> <dbl> <dbl>
#1 0 Toys NA NA
#2 1 Books 20.0 4.03
#3 2 Toys Young-Children NA 3