如何在 R 数据框列中随机替换值?
可以使用 `sample` 函数结合 `nrow` 函数和单方括号子集来随机替换 R 数据框列中的值。
例如,如果我们有一个名为 `df` 的数据框,它包含一个名为 `X` 的列,并且我们想用 1.5 随机替换 `X` 中的 5 个值,那么我们可以使用以下命令:
df$X[sample(nrow(df),5)]<-1.5
示例 1
以下代码片段创建一个示例数据框:
x<-rnorm(20) df1<-data.frame(x) df1
创建了以下数据框
x 1 0.6329624 2 -0.1499087 3 1.4854089 4 -1.1517261 5 0.1337649 6 0.2561524 7 -0.5776149 8 -0.7255745 9 -0.5188515 10 -1.1959642 11 0.8444887 12 -0.4273016 13 -1.3380255 14 -0.3433049 15 -0.7926529 16 0.2302148 17 -0.3378159 18 -1.1405204 19 1.2611400 20 0.3000847
要在上面创建的数据框中用 0 随机替换 `x` 中的 10 个值,请将以下代码添加到上述代码片段中:
x<-rnorm(20) df1<-data.frame(x) df1$x[sample(nrow(df1),10)]<-0 df1
输出
如果将以上所有代码片段作为单个程序执行,则会生成以下输出:
x 1 0.6329624 2 -0.1499087 3 0.0000000 4 -1.1517261 5 0.1337649 6 0.2561524 7 -0.5776149 8 0.0000000 9 -0.5188515 10 0.0000000 11 0.8444887 12 -0.4273016 13 0.0000000 14 0.0000000 15 0.0000000 16 0.0000000 17 0.0000000 18 0.0000000 19 1.2611400 20 0.0000000
示例 2
以下代码片段创建一个示例数据框:
y<-rpois(20,10) df2<-data.frame(y) df2
创建了以下数据框
y 1 9 2 7 3 8 4 5 5 9 6 14 7 11 8 15 9 15 10 11 11 13 12 12 13 14 14 11 15 15 16 11 17 12 18 10 19 12 20 11
要在上面创建的数据框中用 1 随机替换 `y` 中的 15 个值,请将以下代码添加到上述代码片段中:
y<-rpois(20,10) df2<-data.frame(y) df2$y[sample(nrow(df2),15)]<-1 df2
输出
如果将以上所有代码片段作为单个程序执行,则会生成以下输出:
y 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 14 14 1 15 15 16 11 17 12 18 1 19 1 20 11
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP