Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在dplyr中使用group_by()和summary()时,sd函数返回NA(df中没有NA值)_R_Group By_Dplyr_Summarize - Fatal编程技术网

在dplyr中使用group_by()和summary()时,sd函数返回NA(df中没有NA值)

在dplyr中使用group_by()和summary()时,sd函数返回NA(df中没有NA值),r,group-by,dplyr,summarize,R,Group By,Dplyr,Summarize,我有一个带有二进制数字响应变量(0或1)和几个响应变量的df。我正在尝试创建一个表,该表按类型(一个3级变量)和步骤(7级)分组。我想要每个步骤中每种类型的平均响应和标准偏差。输出表应该有21行,包含4个变量:类型、步长、平均值和sd 我的代码如下所示: data <- data %>% group_by(step, type) %>% summarise(Response = mean(Response), dev = sd(Response)) 数据%分组依据(步骤、

我有一个带有二进制数字响应变量(0或1)和几个响应变量的df。我正在尝试创建一个表,该表按类型(一个3级变量)和步骤(7级)分组。我想要每个步骤中每种类型的平均响应和标准偏差。输出表应该有21行,包含4个变量:类型、步长、平均值和sd

我的代码如下所示:

data <- data %>% group_by(step, type) %>% summarise(Response = mean(Response), dev = sd(Response))  
数据%分组依据(步骤、类型)%>%总结(响应=平均值(响应),偏差=标准偏差(响应))
输出表正确生成平均值,但返回所有sd值的NA。我尝试使用'na.rm=TRUE'删除na值,但原始df中没有任何响应。有什么想法吗?

来自
?sd

长度为1或零的向量的标准偏差为“NA”


您的dplyr查询很可能会产生长度为1或长度为0的输出。

以下操作应按您的预期进行:

data <- data %>% group_by(step, type) %>% summarise(Response_mean = mean(Response), dev = sd(Response))  
正在新表中创建一个名为“Response”的变量,其中包含一个值—原始数据中向量“Response”的平均值。以下部分:

dev = sd(Response)
尝试计算单个值的标准偏差

为了举例说明,您也可以尝试以下方法:

data <- data %>% group_by(step, type) %>% summarise(Response = mean(Response), Response_plus_10 = Response + 10)  
数据%groupby(step,type)%%>%总结(响应=平均值(响应),响应加上响应10=响应+10)

希望这能澄清问题。

如果只向
sd()
输入一个值,它将返回
NA
。试试sd(1)。请稍等。如果只有一个值,则不计算sd。
data <- data %>% group_by(step, type) %>% summarise(Response = mean(Response), Response_plus_10 = Response + 10)