Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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
R 基于对称性的NAs实现_R_Dplyr_Data.table_Transformation - Fatal编程技术网

R 基于对称性的NAs实现

R 基于对称性的NAs实现,r,dplyr,data.table,transformation,R,Dplyr,Data.table,Transformation,假设您有一个类似于下面矩阵M的大型数据集: M <- data.frame(code = c("001", "001", "002", "002", "003", "003"), decr = c("x", NA, "y", "y", NA, "z")) # M # code decr # 1 001 x # 2 001 <NA> # 3 002 y # 4 002 y # 5 003 <NA>

假设您有一个类似于下面矩阵M的大型数据集:

M <- data.frame(code = c("001", "001", "002", "002", "003", "003"), 
                decr = c("x", NA, "y", "y", NA, "z"))

# M

#   code decr
# 1  001    x
# 2  001 <NA>
# 3  002    y
# 4  002    y
# 5  003 <NA>
# 6  003    z
如何才能以最佳方式进行此转换

library(tidyverse)

M <- data.frame(code = c("001", "001", "002", "002", "003", "003"), 
                decr = c("x", NA, "y", "y", NA, "z"))

M %>% group_by(code) %>% mutate (decr=unique(na.omit(decr)))
这与@Sotos answer和dupe中的类似,但它不假定缺失值的特定位置


这与@Sotos answer和dupe中的类似,但它不会假定缺失值的特定位置。

请尝试librarytidyverse;M%>%group_bycode%>%filldecr%>%filldecr,.direction='up'尝试librarytidyverse;M%>%group_字节码%>%filldecr%>%filldecr,.direction='up'不错。你应该把这个答案也加到被骗的人身上!我得到了类似的结果:M%>%group\u bycode%>%mutatedecr=if\u elseis.nadecr,uniquena.ommitedecr,decr。但是我现在看到,如果你只是覆盖整个组,那么NA检查就过时了。我想这只有在两者之间有1:1的关系时才会起作用columns@docendodiscimus是的,必须是一对一。如果不是,则填充方法更有意义-假设良好值始终高于或低于NA'sJust checked,dupe和此答案将不起作用-组和值之间没有一一对应的关系。很好。你应该把这个答案也加到被骗的人身上!我得到了类似的结果:M%>%group\u bycode%>%mutatedecr=if\u elseis.nadecr,uniquena.ommitedecr,decr。但是我现在看到,如果你只是覆盖整个组,那么NA检查就过时了。我想这只有在两者之间有1:1的关系时才会起作用columns@docendodiscimus是的,必须是一对一。如果不是,则填充方法更有意义——假设良好值始终高于或低于NA'sJust checked,dupe和此答案将不起作用——组和值之间不存在一一对应的关系。
library(tidyverse)

M <- data.frame(code = c("001", "001", "002", "002", "003", "003"), 
                decr = c("x", NA, "y", "y", NA, "z"))

M %>% group_by(code) %>% mutate (decr=unique(na.omit(decr)))