【问题标题】:Initialise empty data frame of same structure as another初始化与另一个相同结构的空数据框
【发布时间】:2016-11-03 14:58:56
【问题描述】:

我的 R 代码从 csv 文件中读取数据。此数据具有标题并存储在 data.frame mydata 中。标头来自 csv 文件。

我想将数据缩放到 [0,1] 范围内,从而创建另一个名为 scaled 的空 data.frame。然后我循环遍历每一列并除以允许的最大值,我假设最小值为零。

foreach(i = 1:ncol(mydata)) %do% {
    if (i == 1){
        maxval <-100  # Max depth = 100
    }
    else{
        maxval <- max(mydata[,i],na.rm=TRUE)
    }
    scaled[,i] <- mydata[,i] / maxval
}

如何创建与 mydata 具有相同标题和结构的空缩放 data.frame?

非常感谢

【问题讨论】:

  • 什么是'空缩放'?空意味着没有数据,“缩放”意味着您希望数据被缩放,即非空。
  • 数据框将被称为缩放。数据框最初将为空。我将使用上面的代码逐列填充它

标签: r dataframe


【解决方案1】:

尝试以下操作:

col1 <- 100:102
col2 <- 200:202
col3 <- 300:302

df <- cbind(col1,col2,col3)

firstrow = df[,1]/100 # first scaled by 100
scaled <- apply(df, 2, function(col) {col = col / max(col)})
scaled[,1]=firstrow

给了

scaled

>   scaled
     col1      col2      col3
[1,] 1.00 0.9900990 0.9933775
[2,] 1.01 0.9950495 0.9966887
[3,] 1.02 1.0000000 1.0000000

【讨论】:

  • 谢谢,这解决了我遇到的直接问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多