我有一个名为data.csv
的csv文件,其中包含3个仅合并为一个的表。当我将它导入R时,我想将它们分成3个不同的data.frame。
到目前为止,这是我在运行此代码后得到的结果:
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
答案 0 :(得分:1)
一种选择是使用readLines
读取数据集,根据“学生”的位置创建分组变量(&#39; grp&#39;),&#39;地区&#39;,&#39;子地区&#39;在&#39;行&#39;,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")