在对CK组进行均一化时 ,
############################################################## CK组表型数据均一化
library(dplyr)
library(readxl)
Rep1_3_CK<-read_excel(file.choose())
Rep2_3_CK<-read_excel(file.choose())
Rep3_3_CK<-read_excel(file.choose())
list_of_A84<- list(Rep1_1_CK,Rep1_2_CK,Rep1_3_CK,Rep2_1_CK,Rep2_2_CK,Rep2_3_CK,
Rep3_1_CK,Rep3_2_CK,Rep3_3_CK)
#创建一个空列表来存储结果
standard_A84 <- list()
for (i in seq_along(list_of_A84)) {
+ data_A84 <- list_of_A84[[i]] %>% mutate(
+ GCV=GCV/43.14386044 ,GPA = GPA / 40261.22222 ,SA=SA / 56387.05556 , GPAR=GPAR/0.702211444 ,PC1=PC1/ 0.198767941 ,
+ PC2=PC2/0.801232059 , SE=SE/0.189684412 ,SW=SW/411.4444444 ,SH=SH/847.4444444 ,
+ SFD=SFD/1.256162 ,SF=SF/0.166568176 ,HWR=HWR/2.209053294 ,
+ IFD=IFD/1.553223111 ,M_I=M_I/0.014543333 ,SE_I=SE_I/0.269434647 ,S_I=S_I/0.211680353 ,
+ MU3_I=MU3_I/0.428248824 ,U_I=U_I/0.992371389 ,
+ E_I=E_I/0.048479294 ,T1=T1/0.278086125 ,T2=T2/0.748939529 ,T3=T3/7.4945865 ,
+ T4=T4/0.059703444 ,T5=T5/0.099501 ,T6=T6/0.526657941 ,T7=T7/5.479795529 ,
+ T8=T8/ 1.893472778 ,T9=T9/2.388574944 ,T10=T10/1.177320625 ,T11=T11/3.428154333 ,
+ T12=T12/ 21.51694659 ,T13=T13/ 0.244793222 ,T14=T14/3.138888444 ,T15=T15/2.222530471
+ )
+
+ standard_A84[[i]] <- data_A84
+ }
运行报错
Error in `mutate()`:
ℹ In argument: `GCV = GCV/43.14386044`.
Caused by error in `GCV / 43.14386044`:
! 二进列运算符中有非数值参数
Run `rlang::last_trace()` to see where the error occurred.
用str()函数检查数据框中每列数据的数据类型,发现Rep3_3_CK数据框中存在几列字符型数据
> str(Rep3_3_CK)
tibble [201 × 34] (S3: tbl_df/tbl/data.frame)
$ GCV : chr [1:201] "53.688623999999898" "63.030476999999898" "51.939394" "59.403669000000001" ...
$ GPA : num [1:201] 45999 71037 70372 73746 94680 ...
$ SA : num [1:201] 69142 89390 92484 88850 121215 ...
$ GPAR : chr [1:201] "0.66528299999999896" "0.794686" "0.76090999999999898" "0.83000600000000002" ...
$ PC1 : chr [1:201] "0.19569900000000001" "0.159693" "0.12909300000000001" "0.15487899999999899" ...
$ PC2 : chr [1:201] "0.80430100000000004" "0.84030700000000003" "0.87090699999999899" "0.84512100000000001" ...
$ SE : chr [1:201] "0.18485099999999899" "0.146896" "0.11748" "0.13455300000000001" ...
$ SW : num [1:201] 540 383 293 341 436 473 519 425 475 237 ...
$ SH : num [1:201] 950 1254 1223 1187 1251 ...
将字符型数据转换为数值型数据
for (i in seq_along(list_of_A84)) {
data_A84 <- list_of_A84[[i]] %>% mutate(
GCV = as.numeric(GCV) / 43.14386044 ,GPA = GPA / 40261.22222 ,SA=SA / 56387.05556 , GPAR = as.numeric(GPAR) / 0.702211444,
PC1 = as.numeric(PC1) / 0.198767941,PC2 = as.numeric(PC2) / 0.801232059,
SE = as.numeric(SE) / 0.189684412, ,SW=SW/411.4444444 ,SH=SH/847.4444444 ,
SFD=SFD/1.256162 ,SF=SF/0.166568176 ,HWR=HWR/2.209053294 ,
IFD=IFD/1.553223111 ,M_I=M_I/0.014543333 ,SE_I=SE_I/0.269434647 ,S_I=S_I/0.211680353 ,
MU3_I=MU3_I/0.428248824 ,U_I=U_I/0.992371389 ,
E_I=E_I/0.048479294 ,T1=T1/0.278086125 ,T2=T2/0.748939529 ,T3=T3/7.4945865 ,
T4=T4/0.059703444 ,T5=T5/0.099501 ,T6=T6/0.526657941 ,T7=T7/5.479795529 ,
T8=T8/ 1.893472778 ,T9=T9/2.388574944 ,T10=T10/1.177320625 ,T11=T11/3.428154333 ,
T12=T12/ 21.51694659 ,T13=T13/ 0.244793222 ,T14=T14/3.138888444 ,T15=T15/2.222530471
)
standard_A84[[i]] <- data_A84
}
运行成功!