我有這樣的字符資料:
a<-"cat,hammer,green"
b<-"hammer,green"
c<-"cat,hammer,green"
d<-"cat, green"
e<-"green,cat"
f<-"hammer"
df<-data.frame(Col1=rbind(a,b,c,d,e))
df<-as.data.frame(str_split(df$Col1,",",simplify=TRUE))
df
列的順序應該是 cat,hammer green;但是,我的資料有缺失值,在某些情況下,動物工具顏色列順序混淆了。如何定義正確的順序,然后讓我的資料框在正確的列中包含動物、工具和顏色,以及如下所示的 NA 值?
cat hammer green
NA hammer green
cat hammer green
cat NA green
cat NA green
NA hammer NA
uj5u.com熱心網友回復:
這里有一個方法:
a<-"cat,hammer,green"
b<-"hammer,green"
c<-"cat,hammer,green"
d<-"cat, green"
e<-"green,cat"
f<-"hammer"
df<-data.frame(Col1=rbind(a,b,c,d,e,f))
cond <- t(sapply(strsplit(df$Col1,","), function(x) c("cat", "hammer", "green") %in% x))
df2 <- data.frame(animal="cat", tool = "hammer", color = "green")[rep(1, nrow(df)),]
df2[!cond] <- NA
df2
#> animal tool color
#> 1 cat hammer green
#> 1.1 <NA> hammer green
#> 1.2 cat hammer green
#> 1.3 cat <NA> <NA>
#> 1.4 cat <NA> green
#> 1.5 <NA> hammer <NA>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/517809.html
標籤:r排序数据争吵
上一篇:我想在JavaScript輸出中按降序對物件進行排序應該像給定的影像
下一篇:如何倒置記憶體表的記錄?
