我定义了一个函数:
my_func <- function(vector1)
{ // do something
vector2 //vector 2 has the same length with vector1
}
现在,我有一个数据帧:
id1 id2 value
1 1 0.6
1 1 0.7
1 1 0.2
1 2 0.4
1 2 0.8
我想在数据帧中创建一个新列 value2
,方法是在数据帧的每个部分应用函数 my_func
,使用相同的 id1
和相同的 id2
. 这意味着,我想打电话
my_func(dataframe[dataframe$id1 == i & dataframe$id2 == j,]$value)
尽可能 i
和 j
. 并将这些新值分配给新列 value2
中的相应行 .
Update:
输出应如下所示:
id1 id2 value value2
1 1 0.6 3
1 1 0.7 4
1 1 0.2 9
1 2 0.4 2
1 2 0.5 3
1 2 0.8 4
1 3 0.3 2
...
当[3,4,9]是[0.6,0.7,0.2]上的 my_func
的结果时,[2,3,4]是 my_func
对[0.4,0.5,0.8]的结果......
2 回答
你可以这样做:
如果我们使用'id1'和'id2'作为分组变量,我们可以使用
dplyr
或
data.table