मैंने यहां कुछ इसी तरह के प्रश्न देखे हैं लेकिन फिर भी समान कोड का उपयोग करके मैं वांछित आउटपुट पर नहीं पहुंचता हूं।

यह मेरा डेटा है ...

structure(list(Condition = c("1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", 
"3", "3", "3", "3", "3", "3", "3", "3", "3", "3"), Primary = c("love", 
"love", "love", "love", "love", "place", "place", "place", "place", 
"place", "park", "park", "park", "park", "park", "hill", "hill", 
"hill", "hill", "hill", "pool", "pool", "pool", "pool", "pool", 
"bike", "bike", "bike", "bike", "bike"), Secondary = c("trail", 
"surprise", "elegant", "instinct", "person", "car", "amid", "sentiment", 
"family", "sensation", "affect", "effective", "ground", "hug", 
"punch", "maze", "amicable", "fierce", "measure", "thankful", 
"like", "smile", "wish", "ask", "humble", "stress", "happiness", 
"flat", "bed", "sky"), Score = c(0.09, 0.07, 0.06, 0.04, 0.04, 
0.3, 0.12, 0.03, 0.03, 0.03, 0.2, 0.11, 0.05, 0.05, 0.05, 0.18, 
0.07, 0.07, 0.05, 0.05, 0.25, 0.04, 0.04, 0.04, 0.04, 0.25, 0.14, 
0.11, 0.07, 0.06), Condition2 = c("CM", "CM", "CL", "CL", "CL", 
"CM", "CM", "CM", "CL", "CM", "CM", "CM", "CM", "CL", "CM", NA, 
"CL", "CM", "CL", "CM", NA, "CM", "CM", "CL", "CL", "CM", "CM", 
"CM", "CL", "CL"), place = c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 
4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 
5L, 1L, 2L, 3L, 4L, 5L), preference = c("1", "1", "2", "2", "2", 
"1", "1", "1", "2", "1", "1", "1", "1", "2", "1", NA, "2", "1", 
"2", "1", NA, "1", "1", "2", "2", "1", "1", "1", "2", "2")), row.names = c(NA, 
-30L), class = c("tbl_df", "tbl", "data.frame"))

उदाहरण के लिए, मेरे पास डेटा का एक हिस्सा है जो इस तरह दिखता है ...

 Condition Primary Secondary     Score Condition2 place preference
    1       place   car          0.30     CM        1    1
    1       place   amid         0.12     CM        2    1
    1       place   sentiment    0.03     CM        3    1
    1       place   family       0.03     CL        4    2
    1       place   sensation    0.03     CM        5    1

मैं जो करना चाहता हूं वह 'वरीयता' कॉलम को आरोही तरीके से ऑर्डर करना है। तो मुझे इस तरह दिखने के लिए इस टुकड़े की जरूरत है ...

 Condition Primary Secondary     Score Condition2 place preference
    1       place   car          0.30     CM        1    1
    1       place   amid         0.12     CM        2    1
    1       place   sentiment    0.03     CM        3    1
    1       place   sensation    0.03     CM        5    1
    1       place   family       0.03     CL        4    2

मैंने इस कोड का उपयोग करने की कोशिश की

newData <- my_data %>% 
  arrange(preference) %>% 
  group_by(Primary) %>% 
  ungroup()

हालांकि, जब मैं उस कोड को निष्पादित करता हूं तो मुझे यह परिणाम मिलता है ...

Condition Primary Secondary     Score Condition2 place preference
 1 1         love    trail      0.09     CM        1     1         
 2 1         love    surprise   0.07     CM        2     1         
 3 1         place   car        0.3      CM        1     1         
 4 1         place   amid       0.12     CM        2     1         
 5 1         place   sentiment  0.03     CM        3     1         
 6 1         place   sensation  0.03     CM        5     1         
 7 2         park    affect     0.2      CM        1     1         
 8 2         park    effective  0.11     CM        2     1         
 9 2         park    ground     0.05     CM        3     1         
10 2         park    punch      0.05     CM        5     1   

तो शब्द मिश्रित हो जाते हैं। ऐसा लगता है कि group_by ठीक से काम नहीं कर रहा है। तो मैं जो चाहता हूं वह प्राथमिक रूप से group_by करना है और फिर वरीयता कॉलम को आरोही तरीके से ऑर्डर करना है ताकि जब मैं समूहबद्ध हो तो मेरे पास वह परिणाम हो जो मुझे चाहिए।

धन्यवाद

r
1
Ajrhmamd 21 जुलाई 2021, 15:00

2 जवाब

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

यदि आपके Primary कॉलम का क्रम मायने नहीं रखता है, तो आप arrange बिना group_by के दोनों कॉलम एक साथ कर सकते हैं:

set.seed <- 42

library(dplyr)

my_data <- data.frame(
  Primary = sample(c("love", "place", "park"), 10, replace = TRUE),
  preference = sample(1:2, 10, replace = TRUE)
) 

my_data %>% 
  arrange(Primary, preference)
#>    Primary preference
#> 1     love          1
#> 2     love          2
#> 3     love          2
#> 4     park          1
#> 5     park          1
#> 6     park          1
#> 7     park          2
#> 8    place          1
#> 9    place          2
#> 10   place          2
2
stefan 21 जुलाई 2021, 15:11

आपके द्वारा प्रदान किए गए डेटा में वरीयता कॉलम नहीं है। हालांकि, यह काम करना चाहिए:

df %>% 
  group_by(Primary) %>% 
  arrange(Primary, preference)

संपादित करें: अधिक जानकारी

जब भी आप समूहों पर संचालन करना चाहते हैं, तो आपको इसे करने से पहले समूहों को निर्दिष्ट करना होगा, अन्यथा यह काम नहीं करेगा। आपके द्वारा प्रदान किए गए कोड में, आप पहले पंक्तियों को preference द्वारा व्यवस्थित करते हैं, फिर आप Primary द्वारा समूहित करते हैं। आपको पहले आपको Primary के अनुसार समूह कहना होगा, फिर प्रत्येक समूह के भीतर सभी ऑपरेशन होंगे (यहां आप preference द्वारा व्यवस्थित करते हैं)।

1
MonJeanJean 21 जुलाई 2021, 16:05