[英]R stack levels of factor variables into a data frame
如何通過一些 function 生成另一個數據框中包含的因子變量列表的堆疊級別的數據框。
factors <- c("f1", "f2", "f3")
df <- data.frame(f1 = factor(rep(1:3, 10)),
f2 = factor(rep(1:2, 15)),
f3 = factor(rep(1:3, 10)))
factor_levels <- function(fac = factors, dat = df){
?
}
# In the end, I want something like this:
a b
1 f1
2 f1
3 f1
1 f2
2 f2
1 f3
2 f3
3 f3
這個怎么樣:
pivot_longer(df, everything(), names_to="b", values_to="a") %>%
select(a,b) %>%
distinct() %>%
arrange(b,a)
# # A tibble: 8 x 2
# a b
# <fct> <chr>
# 1 1 f1
# 2 2 f1
# 3 3 f1
# 4 1 f2
# 5 2 f2
# 6 1 f3
# 7 2 f3
# 8 3 f3
我們可以使用來自base R
的stack
out <- stack(lapply(df, as.character))
如果列是character
class 或numeric
,這更直接
stack(df)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.