在 R 資料框中,根據條件用最大值替換列中的每個值。
假設我們在一個名為 df 的 R 資料框中,有三個列 X、Y 和 Z,我們想在 X 和 Y 列中替換值,如果這些值大於 Z 中的值,則用相同的值替換,如果它們小於 Z 中的值,則可以用 Z 中的值替換。
檢視下面的示例,瞭解如何實現。
示例 1
以下程式碼片段建立了一個示例資料框 -
x1<-rpois(20,2) x2<-rpois(20,2) X<-rpois(20,3) df1<-data.frame(x1,x2,X) df1
建立了以下資料框
x1 x2 X 1 1 1 3 2 2 2 2 3 1 0 2 4 2 4 0 5 3 3 4 6 4 1 1 7 1 3 2 8 4 2 2 9 4 3 3 10 0 0 2 11 1 4 4 12 2 2 3 13 2 2 1 14 2 1 1 15 3 2 4 16 0 5 1 17 0 0 2 18 1 1 5 19 1 1 3 20 4 2 2
要在上面建立的資料框中,如果 x1 和 x2 小於 X,則用 X 替換 x1 和 x2 中的值,請將以下程式碼新增到上述程式碼片段中 -
x1<-rpois(20,2) x2<-rpois(20,2) X<-rpois(20,3) df1<-data.frame(x1,x2,X) df1[,1:2]<-lapply(df1[,1:2],function(x) ifelse(xdf1$X,x,X)) df1
輸出
如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出 -
x1 x2 X 1 3 3 3 2 2 2 2 3 2 2 2 4 2 4 0 5 4 4 4 6 4 1 1 7 2 3 2 8 4 2 2 9 4 3 3 10 2 2 2 11 4 4 4 12 3 3 3 13 2 2 1 14 2 1 1 15 4 4 4 16 1 5 1 17 2 2 2 18 5 5 5 19 3 3 3 20 4 2 2
示例 2
以下程式碼片段建立了一個示例資料框 -
y1<-rnorm(20,0.5) y2<-rnorm(20,0.5) Y<-rnorm(20,0.5,0.005) df2<-data.frame(y1,y2,Y) df2
建立了以下資料框
y1 y2 Y 1 0.38903537 2.2068051 0.5082834 2 0.08703056 1.4083968 0.5056107 3 0.37278616 1.1038885 0.4990037 4 0.80350925 1.9704348 0.5038784 5 0.97611860 1.2431881 0.5008880 6 -0.61610694 0.7217463 0.4940775 7 -0.37572148 2.6484561 0.5016710 8 1.61492508 -0.8688714 0.5046321 9 0.58858684 -0.7627633 0.5020626 10 2.45589388 0.5280574 0.4963291 11 0.79954296 0.3476735 0.4998230 12 0.32497257 -1.1904892 0.4979471 13 -1.00420011 -1.4069050 0.5007824 14 3.57048593 1.2896375 0.4987264 15 2.26500575 1.5387301 0.5037580 16 1.58224909 -0.9105896 0.4838976 17 -0.31704488 -0.1611695 0.4917168 18 0.89396005 -1.0374997 0.4976947 19 -0.18188955 0.2133147 0.4915311 20 1.27196146 -0.7174173 0.4922855
要在上面建立的資料框中,如果 y1 和 y2 小於 Y,則用 Y 替換 y1 和 y2 中的值,請將以下程式碼新增到上述程式碼片段中 -
y1<-rnorm(20,0.5) y2<-rnorm(20,0.5) Y<-rnorm(20,0.5,0.005) df2<-data.frame(y1,y2,Y) df2[,1:2]<-lapply(df2[,1:2],function(x) ifelse(xdf2$Y,x,Y)) df2
輸出
如果您將上面給出的所有程式碼片段作為一個程式執行,它將生成以下輸出 -
y1 y2 Y 1 0.5082834 2.2068051 0.5082834 2 0.5056107 1.4083968 0.5056107 3 0.4990037 1.1038885 0.4990037 4 0.8035093 1.9704348 0.5038784 5 0.9761186 1.2431881 0.5008880 6 0.4940775 0.7217463 0.4940775 7 0.5016710 2.6484561 0.5016710 8 1.6149251 0.5046321 0.5046321 9 0.5885868 0.5020626 0.5020626 10 2.4558939 0.5280574 0.4963291 11 0.7995430 0.4998230 0.4998230 12 0.4979471 0.4979471 0.4979471 13 0.5007824 0.5007824 0.5007824 14 3.5704859 1.2896375 0.4987264 15 2.2650058 1.5387301 0.5037580 16 1.5822491 0.4838976 0.4838976 17 0.4917168 0.4917168 0.4917168 18 0.8939600 0.4976947 0.4976947 19 0.4915311 0.4915311 0.4915311 20 1.2719615 0.4922855 0.4922855
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP