簡體   English   中英

R-如何在data.frame列中建立一個字符模式列表

[英]R - How to build a list a character pattern in data.frame column

在R中,我的數據框中有以下列...

bodyweight  
65lbs  
72kgs  
20kgs  
30lbs  
.
.
.

我想將其轉換為具有數字通用單位(kgs)的重量的列。

通過使用grep()刪除了所有非數字字符,設法從列中提取了數值。 但是,要將lbs值轉換為kgs我需要另外一列顯示存在lbs所有單元格。 因此輸出將如下所示...

bodyweight_lbs  
1  
0  
0  
1  
...

如何獲得此輸出? 當我使用grep('lbs',data$bodyweight)它返回對整列中的所有lbs進行計數。

你可以這樣

> df <- data.frame(bodyweight=c("65lbs", "72kgs", "20kgs", "30lbs"))
> df$weight_lbs <- ifelse(grepl("lbs$", as.character(df$bodyweight)), 1, 0)
> df
  bodyweight weight_lbs
1      65lbs          1
2      72kgs          0
3      20kgs          0
4      30lbs          1

grepl("lbs$", as.character(df$bodyweight))僅在向量元素最后包含子字符串lbs時才返回TRUE ,否則將返回FALSE 通過傳遞這樣的內部ifelse功能,上面的代碼將創建一個新的列稱為weight_lbs ,它會添加值1 ,如果在相應的字符串bodyweight柱結尾lbs否則會增加0。

要么

df <- data.frame(bodyweight=c("65lbs", "72kgs", "20kgs", "30lbs"))
df$weight_lbs <- as.numeric(grepl("lbs$", as.character(df$bodyweight)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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