我在不同的資料框中有兩列(每個資料框只有 1 列,每列有 2000 行),其中包含職業資訊。我只想將這兩列堆疊成 1 4000 行長的列,這樣我就可以取百分比并制作百分比條形圖。
本質上,我想采用如下形狀的資料框:
Occupation1
Lobbyist
Government Employee
Government Employee
Lobbyist
Teacher
Teacher
Occupation2
Lawyer
Government Employee
Lobbyist
Teacher
Teacher
我想要這個結果:
Occupation
Lobbyist
Government Employee
Government Employee
Lobbyist
Teacher
Teacher
Lawyer
Government Employee
Lobbyist
Teacher
Teacher
uj5u.com熱心網友回復:
您可以只使用rbind()系結行,并setNames()更改每行的名稱:
rbind(
setNames(df1, "Occupation"),
setNames(df2, "Occupation")
)
uj5u.com熱心網友回復:
data.frame(Occupation = c(df1$Occupation1, df2$Occupation2))
#> Occupation
#> 1 Lobbyist
#> 2 Government Employee
#> 3 Government Employee
#> 4 Lobbyist
#> 5 Teacher
#> 6 Teacher
#> 7 Lawyer
#> 8 Government Employee
#> 9 Lobbyist
#> 10 Teacher
#> 11 Teacher
使用reprex v2.0.2創建于 2022-10-15
資料
df1 <- structure(list(Occupation1 = c("Lobbyist", "Government Employee", "Government Employee", "Lobbyist", "Teacher", "Teacher")),
class = "data.frame", row.names = c(NA, -6L))
df2 <- structure(list(Occupation2 = c("Lawyer", "Government Employee", "Lobbyist", "Teacher", "Teacher")),
class = "data.frame", row.names = c(NA, -5L))
uj5u.com熱心網友回復:
在base R剛剛使用unlist:
unlist(c(df1$Occupation1, df2$Occupation2))
[1] "Lobbyist" "Government Employee" "Government Employee" "Lobbyist" "Teacher" "Teacher" "Lawyer"
[8] "Government Employee" "Lobbyist" "Teacher" "Teacher"
在dplyr使用bind_rows中并對齊列名:
bind_rows(df1 %>% rename(Occupation = Occupation1),
df2 %>% rename(Occupation = Occupation2))
Occupation
1 Lobbyist
2 Government Employee
3 Government Employee
4 Lobbyist
5 Teacher
6 Teacher
7 Lawyer
8 Government Employee
9 Lobbyist
10 Teacher
11 Teacher
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/515284.html
標籤:r数据清理数据争吵
下一篇:如果有日期
