如何根据 df 中特定列的 nrows 减少代表的长度

问题描述

我有这个载体(重复 10 倍稀释)

amount<-rep(c(0.1,0.01,0.001,0.0001,0.00001,0.000001,0.0000001),each = 3)

并希望根据 df 中每列的长度对其进行调整,例如如果 CT_1 有 15 个值,那么数量应该是 amount<-rep(c(0.1,0.00001),each = 3)

如果 CT3 有 20 个值,那么数量应该是

amount<-rep(c(0.1,each = 3) 由于 CT_3 中数量为 0.0000001 的重复次数仅为 2 个,因此数量each = 3 会不会有问题?

但是有没有办法控制每个不同情况下代表的大小(=任何列的不同行数)?

    CT_1  CT_2  CT_3  amount
   <dbl> <dbl> <dbl>   <dbl>
 1  14.2  12.4  12.0 1      
 2  14.2  12.4  11.9 1      
 3  14.3  12.8  11.8 1      
 4  17.4  16.5  15.9 0.1    
 5  17.3  16.5  15.9 0.1    
 6  17.4  16.6  15.6 0.1    
 7  21.2  19.9  19.3 0.01   
 8  21.3  20.0  19.6 0.01   
 9  21.1  20.0  19.3 0.01   
10  24.6  23.2  20.4 0.001  
11  24.6  23.5  22.0 0.001  
12  24.8  23.4  22.8 0.001  
13  27.6  26.4  26.1 0.0001 
14  27.8  26.5  26.1 0.0001 
15  27.8  26.5  26.1 0.0001 
16  NA    30.0  29.3 0.00001
17  NA    30.2  29.5 0.00001
18  NA    30.4  NA   0.00001 

解决方法

你可以简单地从 rep 中只获取 n 个元素


# or check if number of not NA in your data
for (current_col in names(data)) {
  col_data <- data[[current_col]]
  
  col_data <- col_data[!is.na(col_data)]
  # get number of row in your data
  n_max <- length(col_data)
  
  # Use length.out for control the size of rep
  amount <- rep(c(0.1,0.01,0.001,0.0001,0.00001,0.000001,0.0000001),each = 3,length.out = n_max)
  
  # Your regression analysis code here
  # ...
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...