Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在另一个函数中粘贴()_R_Data.table_Paste - Fatal编程技术网

R 在另一个函数中粘贴()

R 在另一个函数中粘贴(),r,data.table,paste,R,Data.table,Paste,第一个功能起作用,第二个不起作用,我不知道为什么。我只对本例中的paste()函数发生的情况感兴趣,因为所有其他代码都正常工作。除了下面显示的内容之外,我还尝试了第二个函数,每个值之间都有一个逗号分隔符 理想情况下,列表如下所示,在我的函数中,但使用paste()函数,而不是列出这些值 X41262.0.0=i.X41262.0.0、X41262.0.1=i.X41262.0.1等 fread("ukb33822.csv", select= c("eid", "X2784.0.0", "X279

第一个功能起作用,第二个不起作用,我不知道为什么。我只对本例中的paste()函数发生的情况感兴趣,因为所有其他代码都正常工作。除了下面显示的内容之外,我还尝试了第二个函数,每个值之间都有一个逗号分隔符

理想情况下,列表如下所示,在我的函数中,但使用paste()函数,而不是列出这些值

X41262.0.0=i.X41262.0.0、X41262.0.1=i.X41262.0.1等

fread("ukb33822.csv", select= c("eid", "X2784.0.0", "X2794.0.0", 
                                        "X2804.0.0", "X2814.0.0", "X2834.0.0", 
                                        "X3536.0.0", "X3546.0.0", paste("X41262.0.", 0:65, sep = ""), 
                                        "X3581.0.0"))



biobank[biobank2, on = .(eid), `:=` (X2784.0.0 = i.X2784.0.0, X2794.0.0 = i.X2794.0.0, 
                                 X2804.0.0 = i.X2804.0.0, X2814.0.0 = i.X2814.0.0, 
                                 X2834.0.0 = i.X2834.0.0, X3536.0.0 = i.X3536.0.0, 
                                 X3546.0.0 = i.X3546.0.0, paste("X41262.0.", 0:65, " = ", "i.X41262.0.", 0:65, sep = ""),
                                 X3581.0.0 = i.X3581.0.0)]

Error in 
`[.data.table`(biobank, biobank2, on = .(eid), `:=`(X2784.0.0 = i.X2784.0.0,  : 
  In `:=`(col1=val1, col2=val2, ...) form, all arguments must be named.

没有您的数据,这有点做作,但这可能足以向您展示一个选项:


dtr不是宏语言。当您将
粘贴(“X41262.0.”,0:65,“=”,“i.X41262.0.”,0:65,sep=“”)作为一个函数的参数放入时,该函数会接收该调用产生的字符向量,它不会将该字符向量解释为一组参数。那么,我会在这里使用类似lappy的东西吗?最简单的方法是什么?看起来@r2evans在他的答案中有很好的建议。如果我想使用我现有的代码,这是不可能的吗?我只想选择现有列并将它们添加到不同的现有data.table。在不完全中止现有代码的情况下,是否无法将X41262.0.0=i.X41262.0.0、X41262.0.1=i.X41262.0.1、X41262.0.2=i.X41262.0.2、X41262.0.3=i.X41262.0.3等添加到我的代码中?我也可以单独写。我只是认为有一种更简单的方法可以将这些术语添加到我现有的代码中,而不必手动单独添加它们或完全更改我的代码。您不能按原样使用现有代码,R并不能让这变得容易。我认为这正是您所需要的:如果您可以通过编程方式定义变量名(源和目标),那么这个答案对您不适用呢?好的,明白了。谢谢你的帮助。