R 使用另一列中的值填充数据集中缺少的值

R 使用另一列中的值填充数据集中缺少的值,r,R,我有一个像这样的数据集 Student_ID City Branch Name_of_University M2001 Hyderabad C.S.E JNTU M2002 Delhi E.C.E DelhiUniversity M2003 Hyderabad C.S.E M2004 Chennai I.T M2005

我有一个像这样的数据集

    Student_ID   City        Branch  Name_of_University
    M2001        Hyderabad   C.S.E   JNTU
    M2002        Delhi       E.C.E   DelhiUniversity
    M2003        Hyderabad   C.S.E   
    M2004        Chennai     I.T     
    M2005        Chennai     C.S.E   AnnaUniversity 
    M2006        Hyderabad   E.C.E   OU
    M2007        Delhi       I.T     
    M2008        Chennai     E.C.E   
我想根据城市填写Name_University缺少的值,比如M2003可以用OU或JNTU填写,但是如果JNTU显示的多于OU,最好用JNTU填写。那么,我如何根据一个城市对应的最大出现次数来确定大学名称呢


我需要在R做这个。请帮帮我

这可能接近您想要的:

> # example data set
> set.seed(0)
> df <- data.frame(city = LETTERS[sample(3,20,TRUE)], univ = letters[sample(3,20,TRUE)])
> df$univ[sample(20, 5)] <- NA
> df
   city univ
1     C    c
2     A    c
3     B    a
# .. snip ..
18    C    c
19    C    a
20    B <NA>
> 
> # find max occurance of univ for each city
> ma <- daply(df, .(city), function(x) names(which.max(table(x$univ))))
> ma
  A   B   C 
"b" "a" "a" 
> 
> # replace the NA with the max value 
> df$univ <- ifelse(is.na(df$univ), ma[df$city], as.character(df$univ))
> df
   city univ
1     C    c
2     A    c
3     B    a
# .. snip ..
18    C    c
19    C    a
20    B    a
#示例数据集
>种子集(0)
>df$univ[样本(20,5)]df
城市大学
1c
2 A c
3 B a
# .. 剪
18摄氏度
19 C a
20 B
> 
>#查找每个城市大学的最大发生率
>妈妈
A、B、C
“b”“a”“a”
> 
>#用最大值替换NA
>df$univ df
城市大学
1c
2 A c
3 B a
# .. 剪
18摄氏度
19 C a
20 B a

当两个城市的数量相等时,您会怎么做?非常感谢,但当最大发生次数相等或值完全不同时,它会选择“”。虽然您的方法对我的问题是正确的:),但您是否可以添加到代码中,以便当所有值都是不同的值或出现次数相等时,它应该选择其中任何一个值。