簡體   English   中英

根據內容將 R 中數據框中的一列拆分為兩列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM