मेरे पास एक टेबल इस तरह दिखती है:
v1 <- c("A","B","C")
v2 <- c("E","G","")
v3 <- c("B","C","D")
df1 <- data.frame(v1,v2,v3)
और मैं इसे बदलना चाहता हूं
मुझे क्या करना चाहिए। यदि संभव हो तो कृपया मुझे कई तरीके दें। धन्यवाद।
-2
Stataq
3 नवम्बर 2020, 04:34
2 जवाब
सबसे बढ़िया उत्तर
आप डेटा को लंबे प्रारूप में प्राप्त कर सकते हैं और फिर रिक्त मानों को हटा सकते हैं।
library(dplyr)
library(tidyr)
gather(df1, variable, value) %>% filter(value != '')
# variable value
#1 v1 A
#2 v1 B
#3 v1 C
#4 v2 E
#5 v2 G
#6 v3 B
#7 v3 C
#8 v3 D
हालांकि, gather
को हटा दिया गया है और इसे pivot_longer
से बदल दिया गया है।
pivot_longer(df1, cols = everything(), names_to = 'variable') %>%
filter(value != '')
आप इसके लिए data.table
का भी उपयोग कर सकते हैं:
library(data.table)
melt(setDT(df1), measure.vars = names(df1))[value != '']
1
Ronak Shah
3 नवम्बर 2020, 17:21
आप बिल्ट-इन फ़ंक्शन t()
का उपयोग करके एक स्थानान्तरण कर सकते हैं
df2 <- data.frame(t(df1))
colnames(df2) <- row.names(df1)
df2
1 2 3
v1 A B C
v2 E G
v3 B C D
0
Andy
3 नवम्बर 2020, 04:55