【发布时间】:2020-04-03 00:40:25
【问题描述】:
因此,我的任务是帮助我在研究实验室的 PI 提出一个简单的函数,以帮助从数据框中选择两个随机值,同时忽略 NA。我们工作有价值的数据是基于自我报告的数据,所以我们有一些地方没有回答,我们得到了 NA。我们不会放弃我们的 NA,但在对子量表进行分析时,我们确实需要选择一些值,同时忽略 NA。
我制作了一个简单的测试数据框,并开始使用我的测试功能。我知道它不会像我需要的那样工作,但我遇到了一个奇怪的错误。这是我的代码。
rm(list = ls()) ### clear all ###
dev.off(dev.list()["RStudioGD"])
options(scipen=999)
install.package("dplylr")
install.package("magrittr")
library("magrittr")
library("dplyr")
df<- data.frame("Var1"=c(1,7,8), "Var2"=c(NA, NA, 9), "Var3"=c(2, NA,10), "Var4"=c(3,5,NA), "Var5"=c(4,7,NA))
#select columns funciton, picks two random values from data frame not containing NA
select.col <- function(x,y) ##given df x select y columns
df %>%
select_if(is.numeric) %>%
return(z)
b <- select.col(df,2)
所以,我正在尝试创建一个函数,该函数从未选择 NA 的每一行中选择第二个参数作为随机列。
我希望 b 成为一个新数据集,并以这种格式包含这些数据:
1, 2
2, 7
3, 9
(基本上我的数据是在没有 NA 的情况下随机选择的……有点像基本的 x,y/输入输出表)
我遇到了这个问题,无论我如何重写这个函数,我都会得到“不允许多参数返回”的相同错误。
有什么想法或建议吗?
编辑:我修复了我希望数据外观的格式。把它想象成 CSV;所以一列是一个值,另一列是另一个值。
【问题讨论】:
-
什么是 z?我想你只是想要
%>% return() -
完美。这解决了这个最初的问题。
-
抱歉,格式错误。我现在会在编辑中修复它。