我正在尝试从另一个数据帧中获取数据帧,对某些值(在我的示例中为 a、b、c 和 d)执行一定次数(其值出现在我的第一个数据帧的每个单元格中)。为了更好地说明这一点,我展示了以下数据:
df<-data.frame(replicate(4,sample(20:50,10,rep=TRUE)))
a<-0
b<-1
c<-2
d<-9
我先试过:
for (i in 1:10)
{
print(rep(a, df[i,1]))
}
但是当我试图保存输出时,它只给了我第一行分析:
for (i in 1:10)
{
output<-print(rep(a, df[i,1]))
}
然后我尝试了一些更复杂的东西,比如:
myfunc<-function(n){
a<-0
b<-1
c<-2
d<-9
IDs<- matrix(n[,1]) #A new column with the IDs for each row(rownames)
w = NULL
x = NULL
y = NULL
z = NULL
for (i in 1:nrow(n)) {
w<-rbind(t(as.matrix(rep(a, n[i,1]))))
x<-rbind(t(as.matrix(rep(b, n[i,2]))))
y<-rbind(t(as.matrix(rep(c, n[i,3]))))
z<-rbind(t(as.matrix(rep(d, n[i,4]))))
}
output<-cbind(IDs, w, x, y, z)
return(output <- as.data.frame(output))
}
但我没有得到我需要的东西。
对于这样的矩阵:
预期的输出将是:
第一行:21 乘以 0、46 乘以 1、25 乘以 2 和 28 乘以 9。全部在 120 列中……以此类推其他行
如果你能帮助我解决这个问题,我真的很感激。