R 如何将向量值函数的输出收集到数据帧中?

R 如何将向量值函数的输出收集到数据帧中?,r,dataframe,vector,R,Dataframe,Vector,我有一个函数f1,它将一个数字k作为输入,并返回3个数字k、k+1、k+2。我想问一下如何将这些结果连接到k从1到10的数据帧中。这样,行k对应于输出f1(k) f1一个选项是对函数“f1”进行矢量化,将值1传递到10,返回矩阵,然后使用as.data.frame将其转换为data.frame as.data.frame(Vectorize(f1)(1:10)) as.data.frame(t(Vectorize(f1)(1:10))) 如果需要垂直,则t传输输出并应用as.data.fra

我有一个函数
f1
,它将一个数字
k
作为输入,并返回3个数字
k、k+1、k+2
。我想问一下如何将这些结果连接到
k
从1到10的数据帧中。这样,行
k
对应于输出
f1(k)


f1一个选项是对函数“f1”进行
矢量化,将值1传递到10,返回
矩阵
,然后使用
as.data.frame将其转换为
data.frame

as.data.frame(Vectorize(f1)(1:10))
as.data.frame(t(Vectorize(f1)(1:10)))
如果需要垂直,则
t
传输输出并应用
as.data.frame

as.data.frame(Vectorize(f1)(1:10))
as.data.frame(t(Vectorize(f1)(1:10)))
-输出

#    V1 V2 V3
#1   1  2  3
#2   2  3  4
#3   3  4  5
#4   4  5  6
#5   5  6  7
#6   6  7  8
#7   7  8  9
#8   8  9 10
#9   9 10 11
#10 10 11 12

或者我们可以使用
outer

as.data.frame(outer(1:10, 0:2, `+`))
您还可以使用:

as.data.frame(do.call(rbind,lapply(1:10,f1)))
输出:

as.data.frame(do.call(rbind,lapply(1:10,f1)))
   V1 V2 V3
1   1  2  3
2   2  3  4
3   3  4  5
4   4  5  6
5   5  6  7
6   6  7  8
7   7  8  9
8   8  9 10
9   9 10 11
10 10 11 12