假设我有一个名为items
的数据框,第一列是ItemNames
。我想查看items$ItemNames
中的每个项目,并检查它们是否包含以下任何一个词:
words = c("apple","Apple","Pear","pear")
如果有,请用单词"confirmed"
替换整个字符串。
我尝试了什么:
我使用for
循环和if
语句的组合来执行此操作但失败了:
search = function(x){
words = c("apple","Apple","Pear","pear")
for (i in length(x)){
if (grepl(words, x[1][i]) == TRUE){ #where x[1][i] is the individual element in the ItemNames.
x[1][i] = "confirmed"}
}
}
search(items)
它不起作用。理想情况下,ItemNames
中的所有名称都应替换为“已确认”,如果它们包含words
中的任何元素。
答案 0 :(得分:0)
使用> microbenchmark(
y<-as.vector(x),
y<-x[1:length(x)],
y<-array(x),
y<-c(x),
times=1e4)
Unit: microseconds
expr min lq mean median uq max neval
y <- as.vector(x) 8.251 13.1640 29.02656 14.4865 15.7900 69933.707 10000
y <- x[1:length(x)] 59.709 70.8865 97.45981 73.5775 77.0910 75042.933 10000
y <- array(x) 9.940 15.8895 26.24500 17.2330 18.4705 2106.090 10000
y <- c(x) 22.406 33.8815 47.74805 40.7300 45.5955 1622.115 10000
:
optim()