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