繁体   English   中英

在新列名称下的data.frame旁边添加矢量

[英]Adding vector next to data.frame under new column name

我其中R实验和想实现运行在循环1000000倍,并创建长度的矢量10 ,并增加了每一矢量到名下的数据帧cyclenumber已经重复了。

这是我当前的代码:

loser <- 100
winner <- 500
percentageWinner <- 70
runns <- 1000000
numbs <- 10
for(i in runns ) {
  randNumb <- runif(numbs, min=0, max=100)
  outcome <- ifelse(randNumb < percentageWinner, winner, loser) # true are winners and false are losers
  df <- data.frame(outcome)
  colnames(df)[which(names(df) == "outcome")] <- paste("cycle",i)

}
df 

我正在努力将向量添加到其他data.frame列旁边。

有什么建议,该怎么做?

感谢您的答复!

在您的代码中,在for循环的每次迭代中,您都将i覆盖1i <- 1 )。 如果删除它,它将始终等于runns ,即仅1个循环。

您需要将代码更改为以下内容:

loser <- 100
winner <- 500
percentageWinner <- 70
runns <- 1000000
numbs <- 10
outcome <- matrix(NA, numbs, runns)
for(i in seq_len(runns)) {
  randNumb <- runif(numbs, min=0, max=100)
  outcome[,i] <- ifelse(randNumb < percentageWinner, winner, loser)
}
df <- data.frame(outcome)
colnames(df) <- paste0("cycle",seq_len(runns))

或者您可以避免循环:

randNumb <- runif(numbs*runns, min=0, max=100)
outcome <- ifelse(randNumb < percentageWinner, winner, loser)
outcome <- matrix(outcome, numbs, runns)
df <- data.frame(outcome)
colnames(df) <- paste0("cycle",seq_len(runns))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM