#r #csv
#r #csv
Вопрос:
У меня есть файл csv data.csv
, который содержит 3 таблицы, объединенные в одну. Я хотел бы разделить их на 3 разных data.frame при импорте в R. Пока это то, что я получил после запуска этого кода:
df <- read.csv("data.csv")
View(df)
Student
Name Score
Maria 18
Bob 25
Paul 27
Region
Country Score
Italy 65
India 99
United 88
Sub region
City Score
Paris 77
New 55
Rio 78
Как я могу разделить их таким образом, чтобы получить этот результат:
Первый:
View(StudentDataFrame)
Name Score
Maria 18
Bob 25
Paul 27
Второй:
View(regionDataFrame)
Country Score
Italy 65
India 99
United 88
Третий:
View(SubRegionDataFrame)
City Score
Paris 77
New 55
Rio 78
Ответ №1:
Одним из вариантов было бы прочитать набор данных с readLines
помощью, создать группирующую переменную (‘grp’) на основе местоположения ‘Student’, ‘Region’, ‘Sub region’ в ‘lines’, split
и прочитать его с помощью read.table
i1 <- trimws(lines) %in% c("Student", "Region", "Sub region")
grp <- cumsum(i1)
lst <- lapply(split(lines[!i1], grp[!i1]), function(x)
read.table(text=x, stringsAsFactors=FALSE, header=TRUE))
lst
#$`1`
# Name Score
#1 Maria 18
#2 Bob 25
#3 Paul 27
#$`2`
# Country Score
#1 Italy 65
#2 India 99
#3 United 88
#$`3`
# City Score
#1 Paris 77
#2 New 55
#3 Rio 78
данные
lines <- readLines("data.csv")