假设我有一个大型数据集,并根据条目类型和该类型条目的出现次数来组织信息。
说...
Area Animal Observations
US Cat 4
NE Cat 9
US Dog 2
我的问题是如何创建一个数据集(在R中进行分析),列出像...这样的项目。
说...
Area Animal
US Cat
US Cat
US Cat...
US
NE
NE
NE
NE....
US.. Dog..
我问,因为我有一个大数据集,我试图获取每一行的每个条目,而不是它们被分组。有谁知道怎么做?
答案 0 :(得分:1)
尝试
library(splitstackshape)
expandRows(df1, 'Observations')
# Area Animal
#1 US Cat
#1.1 US Cat
#1.2 US Cat
#1.3 US Cat
#2 NE Cat
#2.1 NE Cat
#2.2 NE Cat
#2.3 NE Cat
#2.4 NE Cat
#2.5 NE Cat
#2.6 NE Cat
#2.7 NE Cat
#2.8 NE Cat
#3 US Dog
#3.1 US Dog
答案 1 :(得分:1)
通过'rownames'对数据框进行索引,重复次数为'Observations':
> rep(rownames(dat), dat$Observations)
[1] "1" "1" "1" "1" "2" "2" "2" "2" "2" "2" "2" "2" "2" "3" "3"
> dat[ rep(rownames(dat), dat$Observations) , ]
Area Animal Observations
1 US Cat 4
1.1 US Cat 4
1.2 US Cat 4
1.3 US Cat 4
2 NE Cat 9
2.1 NE Cat 9
2.2 NE Cat 9
2.3 NE Cat 9
2.4 NE Cat 9
2.5 NE Cat 9
2.6 NE Cat 9
2.7 NE Cat 9
2.8 NE Cat 9
3 US Dog 2
3.1 US Dog 2
答案 2 :(得分:1)
以下是使用lapply()
和rep()
的方法:
df <- data.frame(Area=c('US','NE','US'), Animal=c('Cat','Cat','Dog'), Observations=c(4,9,2) );
as.data.frame(lapply(df[-3],rep,df[,3]));
## Area Animal
## 1 US Cat
## 2 US Cat
## 3 US Cat
## 4 US Cat
## 5 NE Cat
## 6 NE Cat
## 7 NE Cat
## 8 NE Cat
## 9 NE Cat
## 10 NE Cat
## 11 NE Cat
## 12 NE Cat
## 13 NE Cat
## 14 US Dog
## 15 US Dog