我有一个如下数据框,
DATA [1]
Price=100
Price=200
Price=300
DATA [2]
Size=10
Size=20
Size=30
我可以轻松删除角色部分然后直接进行计算。
我希望结果如下:
100*10
200*20
300*30
答案 0 :(得分:3)
df$c1 <- gsub("Size=", "", df$c1)
删除字符df$c1 <- as.numeric(as.character(df$c1))
更改为数字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