r - R将因子变量的级别堆叠到数据框中
问题描述
如何通过某个函数生成包含在另一个数据框中的因子变量列表的堆叠级别的数据框。
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
推荐阅读
- vagrant - 我可以在 Vagrant 中安装共享文件夹之前强制进行配置吗?
- reactjs - 将数据添加到 Firebase 中的现有节点
- ios - 自定义 AlertView 控制器未显示视图控制器的顶部?
- uwp - 使用 AdControl.Suspend() 方法并将 AdControl 可见性更改为 Collapsed 是否有任何限制?
- java - 从另一个类中检索值
- angular - 在Angular 2中将Base64字符串转换为pdf
- linux - pypy3 安装密码学失败
- c# - 当我从 NT 服务访问上下文时,为什么会有一个非空的 HttpContext.Current?
- azure - 有没有办法从 nginx-kubernetes 入口提供外部 URL?
- javascript - 如何从解析平台检索对象并使用 Typescript 显示它们?