df1:
meats <- c("steak;apples", "ham;pears", "chicken;bananas")
fruit <- c("","","")
我想從“肉類”列中提取字串的水果部分并將其移動到相應的水果列,但僅限于水果列中有空欄位的地方。我的資料框實際上要大得多,并且并非所有值都從“水果”列中丟失。
所以我最終會這樣:
meats <- c("steak", "ham", "chicken")
fruit <- c("apples", "pears", "bananas")
我曾嘗試使用 ifelse 陳述句,但我不確定如何將它與 gsub 結合以提取我需要的字串部分并保持兩列的正確格式。我考慮過首先使用 gsub 提取字串的水果部分,然后附加到新列中,但我想知道是否有更優雅的方法來執行此操作。
uj5u.com熱心網友回復:
從您的示例中不清楚您希望如何將肉類中的水果與水果中的水果結合起來,但根據您的實際示例:
split <- strsplit(meats, ";")
meats <- sapply(split, "[", 1)
fruit <- sapply(split, "[", 2)
meats
# [1] "steak" "ham" "chicken"
fruit
# [1] "apples" "pears" "bananas"
如果fruit正在與另一個向量組合,您將需要解釋您希望該合并如何發生。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/446286.html
標籤:r
上一篇:在列中的新值之后插入NA行
