删除data.frame列中的前X个字符

时间:2016-08-02 09:13:19

标签: r dataframe

我有一个如下数据框,

DATA [1]

Price=100
Price=200
Price=300

DATA [2]

Size=10
Size=20
Size=30

我可以轻松删除角色部分然后直接进行计算。

我希望结果如下:

100*10
200*20
300*30

2 个答案:

答案 0 :(得分:3)

  1. 在两列上使用df$c1 <- gsub("Size=", "", df$c1)删除字符
  2. 在两列上使用df$c1 <- as.numeric(as.character(df$c1))更改为数字
  3. df$c3 <- df$c1*df$c2可以将列相乘并创建新的答案列

答案 1 :(得分:0)

以下是使用substring向右移动每列左侧的解决方案。

这里假设您要剪切的部分(例如“Price =”)在一列中具有相同的长度,而最后的数值的长度可以变化(例如“100”或“1000000” )。

# Create sample data
d <- data.frame(column1=c("Price=100", "Price=200", "Price=300", "Price=400"),
                column2=c("Size=10","Size=20","Size=30", "Size=40"),
                stringsAsFactors=FALSE)

# Transform and multiply columns
d$result <- as.numeric(substring(d[,1], 7, nchar(d[,1]))) * 
            as.numeric(substring(d[,2], 6, nchar(d[,2])))

# Result
# > d
# column1     column2 result
# 1 Price=100 Size=10   1000
# 2 Price=200 Size=20   4000
# 3 Price=300 Size=30   9000
# 4 Price=400 Size=40  16000