r - 用户定义的函数来产生选定变量的唯一值
问题描述
我编写了一个简单的用户函数来生成给定列的唯一值,如下所示:
> get.values <- function(df, colNamestr) {
df %>%
select(colNamestr) %>%
distinct()
}
样本数据如下:
myData <- data.frame(
variable1 = c("cat", "cat", "dog"),
variable2 = c("yes", "no", "maybe"),
variable3 = c("yellow", "yellow", "white")
)
当我按如下方式运行该函数时:
get.values(myData, 'variable1') ... result is:
variable1
1 cat
2 dog
我想扩展这个函数,以便我可以一次调用多个列名(大约 15 个)(我的实际数据有 2000 列),并输出一个包含变量的所有唯一值的数据框,例如这个。
get.values(myData, c('variable1', 'variable2', 'variable3')
variable1 variable2 variable3
1 cat yes yellow
2 dog no white
3 maybe
任何建议将不胜感激!!!
解决方案
在这里,我们可以使用map
library(purrr)
map(names(myData), get.values, df = myData) %>%
reduce(rowr::cbind.fill, fill = "")
# variable1 variable2 variable3
#1 cat yes yellow
#2 dog no white
#3 maybe
推荐阅读
- python - 在给定时间释放 Django 视图
- django - 使用 IIS 部署时缺少 Django CSS 文件
- java - 如何在android中使用api将多个选中的复选框值传递给服务器?
- c# - 如何在c#中获取有ajax调用的网站的动态数据
- python - 如何使用 pandas 在一个命令行中连续写入多个值
- c++ - 当我从文本文件中读取时如何获取 char[] 的大小
- flutter - 无法在 FormBuilder 中的运行时按下按钮构建新的小部件
- python - 如何使用 pyodbc 将数据插入到 SQL Server 的唯一标识符列中
- google-apps-script - 为什么我的 onChange 触发器在更改后执行多次而不是一次。?
- excel - 如何获取仅查找给定月份的最后一天可用的值?