[英]Splitting a column in a dataframe in R into two based on content
我在 R 數據框中有一列包含產品重量,即 20 公斤,但它具有混合測量系統,即 1 磅和 2 公斤等。我想將值與測量值分開並將它們放在單獨的列中,然后將它們轉換為新色譜柱達到標准重量。 關於我如何實現這一目標的任何想法? 提前致謝。
假設您將列指定為
x <- c("20 kg","50 lbs","1.5 kg","0.02 lbs")
你知道數字和測量值之間總是有一個空格。 然后你可以在空格字符處將其拆分,例如通過
splitted <- strsplit(x," ")
這會產生一個長度為 2 的向量列表,其中第一個是數字,第二個是測量值。 現在抓取數字並通過轉換它們
numbers <- as.numeric(sapply(splitted,"[[",1))
並通過獲取單位
units <- sapply(splitted,"[[",2)
現在您可以將所有內容放在一個 `data.frame 中。
注意:使用as.numeric
,小數點必須是點。 如果您有逗號,則需要用點替換它們,例如通過gsub(",","\\\\.",...)
。
分離(數據幀,變量名,進入= c(“值”,“度量”),sep =“”)
我的情況很簡單,我可以只使用一個空格分隔符,但我了解到您也可以在此處使用正則表達式來考慮更復雜的分隔符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.