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