在R数据帧列中随机分布向量

在R数据帧列中随机分布向量,r,R,我一定错过了一件很明显的事情 我有一个说的向量 vec=c(“v1”、“v2”、“v3”)我想沿着数据帧中的一列分布这个向量 Girth Height Volume newcolumn 8.3 70 10.3 V1 8.6 65 10.3 V2 8.8 63 10.2 V3 10.5 72 16.4 V1 10.7 81 18.8 V2 10.8 83 19

我一定错过了一件很明显的事情

我有一个说的向量
vec=c(“v1”、“v2”、“v3”)
我想沿着数据帧中的一列分布这个向量

Girth   Height  Volume  newcolumn
8.3      70     10.3    V1
8.6      65     10.3    V2
8.8      63     10.2    V3
10.5     72     16.4    V1
10.7     81     18.8    V2
10.8     83     19.7    V3
11       66     15.6    V1
11       75     18.2    V2
10.8     83     19.7    V3
11       66     15.6    V1
11       75     18.2    V2
11.1     80     22.6    V3

提前感谢。

如果行数不是3的倍数,我们可以使用
rep
来确保它也可以工作

df$newcolumn <- vec

df

#>    Girth Height Volume newcolumn
#> 1    8.3     70   10.3        v1
#> 2    8.6     65   10.3        v2
#> 3    8.8     63   10.2        v3
#> 4   10.5     72   16.4        v1
#> 5   10.7     81   18.8        v2
#> 6   10.8     83   19.7        v3
#> 7   11.0     66   15.6        v1
#> 8   11.0     75   18.2        v2
#> 9   10.8     83   19.7        v3
#> 10  11.0     66   15.6        v1
#> 11  11.0     75   18.2        v2
#> 12  11.1     80   22.6        v3
df$newcolumn <- rep(vec, length.out = nrow(df))

df$newcolumn您需要以某种方式从
vec
回收值

cbind
将执行此操作,并生成所需的输出

cbind(df, vec)
   Girth Height Volume vec
1    8.3     70   10.3  v1
2    8.6     65   10.3  v2
3    8.8     63   10.2  v3
4   10.5     72   16.4  v1
5   10.7     81   18.8  v2
6   10.8     83   19.7  v3
7   11.0     66   15.6  v1
8   11.0     75   18.2  v2
9   10.8     83   19.7  v3
10  11.0     66   15.6  v1
11  11.0     75   18.2  v2
12  11.1     80   22.6  v3
也就是说,你的题目是关于“随机分配向量”。要做到这一点,你需要

set.seed(123)
df$newcol <- sample (vec, size = nrow(df), replace = TRUE)
   Girth Height Volume newcol
   <dbl>  <dbl>  <dbl> <chr> 
 1   8.3     70   10.3 v3    
 2   8.6     65   10.3 v3    
 3   8.8     63   10.2 v3    
 4  10.5     72   16.4 v2    
 5  10.7     81   18.8 v3    
 6  10.8     83   19.7 v2    
 7  11       66   15.6 v2    
 8  11       75   18.2 v2    
 9  10.8     83   19.7 v3    
10  11       66   15.6 v1    
11  11       75   18.2 v2    
12  11.1     80   22.6 v2  
set.seed(123)

完全正确!我需要的是汉克斯
cbind(df, vec)
   Girth Height Volume vec
1    8.3     70   10.3  v1
2    8.6     65   10.3  v2
3    8.8     63   10.2  v3
4   10.5     72   16.4  v1
5   10.7     81   18.8  v2
6   10.8     83   19.7  v3
7   11.0     66   15.6  v1
8   11.0     75   18.2  v2
9   10.8     83   19.7  v3
10  11.0     66   15.6  v1
11  11.0     75   18.2  v2
12  11.1     80   22.6  v3
set.seed(123)
df$newcol <- sample (vec, size = nrow(df), replace = TRUE)
   Girth Height Volume newcol
   <dbl>  <dbl>  <dbl> <chr> 
 1   8.3     70   10.3 v3    
 2   8.6     65   10.3 v3    
 3   8.8     63   10.2 v3    
 4  10.5     72   16.4 v2    
 5  10.7     81   18.8 v3    
 6  10.8     83   19.7 v2    
 7  11       66   15.6 v2    
 8  11       75   18.2 v2    
 9  10.8     83   19.7 v3    
10  11       66   15.6 v1    
11  11       75   18.2 v2    
12  11.1     80   22.6 v2