我想将一个函数应用于字符串列表,同时在每个字符串的同一数据框中创建一个新列,用于存储新数据。我使用R.
对于单个字符串/变量,代码如下所示。该函数在列中搜索字符串,这就是将函数应用于字符串的原因:
dt$Q1.var1 <- myfunction("var1")
我尝试了各种配置,但这里有一对不能正常工作。首先,以下内容创建新列,但使用相同的值填充每列。根据我的数据,我知道这是不对的:
varlist = c("var1","var2","var3")
Q1list = rep("Q1", length(varlist)
dt[,paste(Q1list, varlist, sep".")] <- sapply(dt[,varlist], function(x) myfunction(x))
我的第二次尝试是使用for
循环,但结果相同(带有新值的新列,但所有值都相同)。
for (var in varlist) {
dt[,paste(Q1list, varlist, sep=".")] <- myfunction(varlist)
}
for
循环也会产生50个警告,完全相同:
1: In stri_detect_regex(string, pattern, opts_regex = attr(pattern, ... :
longer object length is not a multiple of shorter object length
非常感谢任何帮助。似乎我错过了以某种方式在字符串上迭代函数的关键组件。我还没有能够在stackoverflow或其他地方找到解决这个问题的任何内容,尽管这可能是因为我缺乏用可搜索术语表达问题的语言。