我希望这是一个简单的问题。
我有两个变量,我想从另一个变量中取出一个字符串,基本上是要获取第二个变量中剩下的任何东西
variable1='test'
variable2='test2'
wantedresult='2'
newdf=as.data.frame(cbind(variable1,variable2,wantedresult))
如果gsub处理2列,我会用它,但是第一个参数必须是字符串而不是变量
gsub(newdf$variable2,'',newdf$variable1)
还有另一种方法吗? 谢谢
答案 0 :(得分:0)
如果有多行,则必须使用一种可以对操作进行矢量化的技术。这是使用mapply
的示例。
# Create example data frame
variable1 <- c('test', 'bus')
variable2 <- c('test2', 'bus3')
wantedresult <- c('2', '3')
newdf <- data.frame(variable1, variable2, wantedresult, stringsAsFactors = FALSE)
newdf
# variable1 variable2 wantedresult
# 1 test test2 2
# 2 bus bus3 3
# Apply the gsub function using mapply
mapply(gsub, pattern = newdf$variable1, replacement = "", x = newdf$variable2)
# test bus
# "2" "3"
答案 1 :(得分:0)
这里是data.table
# data
variable1 <- 'test'
variable2 <- 'test2'
newdf <- as.data.frame(cbind(variable1,variable2))
# solution
library(data.table)
setDT(newdf)[, wantedresult := gsub(variable1, '', variable2, fixed = TRUE)]
newdf # output
variable1 variable2 wantedresult
1: test test2 2