我有数据框(比方说df)。我有因子f。 我想把这个因素插入p [1],p [2] ...,p [k] 其中k是整数正数。因此,它们中的每一个都将成为数据帧df中的新列。数据帧中的列名将保持为p [1],p [2] ...,p [k]。
如何通过循环将f插入p [1] .. p [k]?如何将它们作为新列添加到df(数据帧)?在每个新专栏中保留其编号非常重要。 以下是df:
的示例> df
var1 var2 var3
1 ac bc bc
2 bc bc cc
3 dc ec dc
4 gc gc gc
我有一个因素:
> f
[1] setosa setosa setosa versicolor
Levels: setosa versicolor
如果k = 2,我想将df作为:
> df
var1 var2 var3 p[1] p[2]
1 ac bc bc setosa setosa
2 bc bc cc setosa setosa
3 dc ec dc setosa setosa
4 gc gc gc versicolor versicolor
答案 0 :(得分:1)
以下是如何执行此操作的方法:
for (i in 1:2) df[[sprintf("p[%i]", i)]] <- f
# var1 var2 var3 p[1] p[2]
#1 ac bc bc setosa setosa
#2 bc bc cc setosa setosa
#3 dc ec dc setosa setosa
#4 gc gc gc versicolor versicolor
当然,我无法想到你应该需要这个的任何理由。肯定有更好的方法来解决你的实际问题。
使用非语法有效的名称总是一个坏主意。