मेरे पास कुछ अनुपलब्ध समूह जानकारी वाला डेटा फ़्रेम है। मैं उस मूल्य का उपयोग करना चाहता हूं जहां समूह को असाइन करने के लिए समान मान पाया जाता है।

df <- data.frame(group = c(NA, 'group1', 'group2'),
                 value = c(0.7, 0.7, 0.3)) 

मैं कैसे देख सकता हूं कि एनए समूह का मूल्य दूसरे समूह से मेल खाता है, और उस समूह के बराबर एनए मान सेट करें? यहां, NA 'ग्रुप1' होना चाहिए।

2
user42485 6 अक्टूबर 2020, 00:23

2 जवाब

सबसे बढ़िया उत्तर

हम match का उपयोग base R में कर सकते हैं

df$group <- with(df, na.omit(group)[match(value, unique(value))])
1
akrun 6 अक्टूबर 2020, 00:47

merge + subset का उपयोग करते हुए एक आधार R विकल्प

merge(df["value"],subset(df,complete.cases(df)))

जो देता है

  value  group
1   0.3 group2
2   0.7 group1
3   0.7 group1
1
ThomasIsCoding 6 अक्टूबर 2020, 00:34