将一些行转换为R中的LBS

时间:2018-11-19 09:31:47

标签: r

我的矢量中有不同种类的数据,我一直在尝试进行转换,但我真的找不到办法。

在te栏中,我有权重,没有指示器的是磅,其他是KG,我都需要以磅为单位。但是我找不到如何仅处理特定数量的行。要取出千克,然后乘以2.20,以千克为单位换算。

  • 列表项
    • 重量
    • 200
    • 150
    • 220
    • 100公斤
    • 80公斤
    • 95公斤

1 个答案:

答案 0 :(得分:1)

尝试以下示例:

# example data
df1 <- read.table(text = "Weight 
1  194 
2  200 
3  250 
4  50Kg 
5  40Kg 
6  39Kg", header = TRUE, stringsAsFactors = FALSE)


# using ifelse (gives warning)
ifelse(grepl("Kg", df1$Weight),
       as.numeric(gsub("Kg", "", df1$Weight)) * 2.2,
       as.numeric(df1$Weight))
# [1] 194.0 200.0 250.0 110.0  88.0  85.8
# Warning message:
# In ifelse(grepl("Kg", df1$Weight), as.numeric(gsub("Kg", "", df1$Weight)) *  :
#    NAs introduced by coercion

# not using ifelse :)
as.numeric(gsub("Kg", "", df1$Weight)) * (1 + grepl("Kg", df1$Weight) * 1.2)
# [1] 194.0 200.0 250.0 110.0  88.0  85.8