如何在 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