गणना के कई नए चर से मौजूदा जोड़े और मानकीकरण के नए चर मूल्यों के खिलाफ अन्य चर में आर

0

सवाल

मैं करना चाहते हैं बनाने के लिए नए [शब्द]_c चर से जोड़े चर से घटाकर variable_b से variable_a, लेकिन के रूप में वहाँ रहे हैं 50 जोड़े, यह करने के लिए मदद मिलेगी में सक्षम हो जाएगा ऐसा करने के लिए होने के बिना लिखने के लिए बाहर हर नाम है ।

एक बार मैं [शब्द]_c कॉलम, मैं करना चाहते हैं का मानकीकरण [शब्द]_c और V[शब्द]प्रश्न: [संख्या] कॉलम इतना है कि वे हो सकता है की तुलना में. मुझे पता है कि प्रत्येक [शब्द]_a और [शब्द]_b स्तंभ के एक नंबर 1-100 से, और प्रत्येक V[शब्द]प्रश्न: [संख्या] स्तंभ से एक नंबर 1-9.

तो उदाहरण के लिए, जा रहा से:

Word_b  Word_a  Six_b  Six_a  Flute_b  Flute_a  VWordQ.13  VSixQ.22  VFluteQ.7 
<chr>   <chr>   <chr>  <chr>  <chr>    <chr>     <dbl>      <dbl>     <dbl>
60       1       1      30      1        1        6.53       5.14      6.68
70       10      3      50      50       10       NA         NA        5.60
51       31      1      48      52       1        5.60       5.95      NA

यह करने के लिए (प्लस वी चर):

Word_b  Word_a  Word_c  Six_b  Six_a  Six_c  Flute_b  Flute_a  Flute_c ...
60       1       -50      1     30     29      1         1       0     ...
70       10      -60      3     50     47      50        10     -40    ...
51       31      -20      1     48     47      52        1      -51    ...

... और फिर मानकीकरण सिर्फ _c और वी कॉलम.

(इस कॉलम के आदेश महत्वपूर्ण नहीं है मुझे करने के लिए)

उदाहरण के लिए डेटा:

structure(list(Word_b = c("60", "70", "51", "73", "13", 
"60", "30"), Word_a = c("1", "10", "31", "30", "22", "5", 
"30"), Six_b = c("1", "3", "1", "0", "0", "0", "40"), Six_a = c("30", 
"50", "48", "41", "35", "0", "65"), Flute_b = c("1", "50", 
"52", "50", "45", "80", "30"), Flute_a = c("1", "10", "1", 
"0", "0", "0", "3"), VWordQ.13 = c(6.53, NA, 5.6, 5.6, 5.21, 
5.44, 6), VSixQ.22 = c(5.14, NA, 5.95, 3.25, 3.24, 3, 3), 
    VFluteQ.7 = c(6.68, NA, 5.6, 6.68, 6.92, NA, 6.68)), row.names = c(NA, 
-7L), class = c("tbl_df", "tbl", "data.frame"))
calculated-columns r standardized
2021-11-11 11:11:22
1

सबसे अच्छा जवाब

1

पहले भाग का कार्य किया जाता है ।

library(tidyverse)

df = structure(list(Word_b = c("60", "70", "51", "73", "13", 
 "60", "30"), Word_a = c("1", "10", "31", "30", "22", "5", 
 "30"), Six_b = c("1", "3", "1", "0", "0", "0", "40"), Six_a = c("30", 
 "50", "48", "41", "35", "0", "65"), Flute_b = c("1", "50", 
 "52", "50", "45", "80", "30"), Flute_a = c("1", "10", "1", 
 "0", "0", "0", "3"), VWordQ.13 = c(6.53, NA, 5.6, 5.6, 5.21, 
 5.44, 6), VSixQ.22 = c(5.14, NA, 5.95, 3.25, 3.24, 3, 3), 
 VFluteQ.7 = c(6.68, NA, 5.6, 6.68, 6.92, NA, 6.68)), row.names = c(NA, 
 -7L), class = c("tbl_df", "tbl", "data.frame"))


df = df %>% type.convert(as.is = TRUE)

for(name in names(df) %>% str_match("(^.*)_([a,b])") %>% .[,2] %>% .[!is.na(.)] %>% unique()){
  df=df %>% mutate(!!as.name(paste0(name,"_c")) := 
                     !!as.name(paste0(name,"_a")) - 
                     !!as.name(paste0(name,"_b")))
}
df

आउटपुट

# A tibble: 7 x 12
  Word_b Word_a Six_b Six_a Flute_b Flute_a VWordQ.13 VSixQ.22 VFluteQ.7 Word_c Six_c Flute_c
   <int>  <int> <int> <int>   <int>   <int>     <dbl>    <dbl>     <dbl>  <int> <int>   <int>
1     60      1     1    30       1       1      6.53     5.14      6.68    -59    29       0
2     70     10     3    50      50      10     NA       NA        NA       -60    47     -40
3     51     31     1    48      52       1      5.6      5.95      5.6     -20    47     -51
4     73     30     0    41      50       0      5.6      3.25      6.68    -43    41     -50
5     13     22     0    35      45       0      5.21     3.24      6.92      9    35     -45
6     60      5     0     0      80       0      5.44     3        NA       -55     0     -80
7     30     30    40    65      30       3      6        3         6.68      0    25     -27

लेकिन मुझे समझ नहीं आता कि यह क्या मतलब मानकीकरण सिर्फ _c और वी कॉलम.

छोटे से अद्यतन

यह किया जा सकता है इस तरह

for(name in names(df) %>% str_match("(^.*)_([a,b])") %>% .[,2] %>% .[!is.na(.)] %>% unique()){
  df=df %>% mutate(!!as.name(paste0(name,"_c")) := scale(
                     !!as.name(paste0(name,"_a")) - 
                     !!as.name(paste0(name,"_b")))[,1])
}

df %>% mutate_at(vars(contains(".")), ~scale(.x)[,1]) 

आउटपुट

# A tibble: 7 x 12
  Word_b Word_a Six_b Six_a Flute_b Flute_a VWordQ.13 VSixQ.22 VFluteQ.7 Word_c  Six_c Flute_c
   <int>  <int> <int> <int>   <int>   <int>     <dbl>    <dbl>     <dbl>  <dbl>  <dbl>   <dbl>
1     60      1     1    30       1       1     1.70     0.944     0.323 -0.915 -0.182  1.71  
2     70     10     3    50      50      10    NA       NA        NA     -0.949  0.912  0.0759
3     51     31     1    48      52       1    -0.277    1.58     -1.75   0.435  0.912 -0.374 
4     73     30     0    41      50       0    -0.277   -0.531     0.323 -0.361  0.547 -0.333 
5     13     22     0    35      45       0    -1.11    -0.538     0.784  1.44   0.182 -0.128 
6     60      5     0     0      80       0    -0.618   -0.726    NA     -0.776 -1.95  -1.56  
7     30     30    40    65      30       3     0.575   -0.726     0.323  1.13  -0.426  0.607 

आशा है कि तुम क्या मतलब.

2021-11-11 20:47:33

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में