0
我有一個像下面的數據幀中刪除第一X字符,在data.frame柱
DATA [1]
Price=100
Price=200
Price=300
DATA [2]
Size=10
Size=20
Size=30
什麼簡單的方法我可以刪除字符部分,然後直接進行計算。
我希望有結果,如:
100*10
200*20
300*30
我有一個像下面的數據幀中刪除第一X字符,在data.frame柱
DATA [1]
Price=100
Price=200
Price=300
DATA [2]
Size=10
Size=20
Size=30
什麼簡單的方法我可以刪除字符部分,然後直接進行計算。
我希望有結果,如:
100*10
200*20
300*30
df$c1 <- gsub("Size=", "", df$c1)
上兩列,以消除兩欄的字符df$c1 <- as.numeric(as.character(df$c1))
轉換到數字df$c3 <- df$c1*df$c2
可能會工作或類似於乘以列並創建一個新的答案列這是一個使用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
所以......差不多這個? http://stackoverflow.com/questions/14543627/extracting-numbers-from-vectors-of-string 字符串是否不變? – Laterow
'tidyr :: extract_numeric(DATA [,1])* tidyr :: extract_numeric(DATA [,2])' – Sumedh