簡體   English   中英

R 將因子變量的級別堆棧到數據框中

[英]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 Rstack

out <- stack(lapply(df, as.character))

如果列是character class 或numeric ,這更直接

stack(df)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM