1
我有一個data.frame df> 110 000行。它看起來像:R - 使用shapiro.test()應用於數字矩陣給出的錯誤:所有的'x'值是相同的
traking_id A1_CTRL A2_CTRL A3_CTRL A4_CTRL A5_CTRL A1_DEX A2_DEX A3_DEX A4_DEX A5_DEX
1 ENSMUST00000000001 1.35358e+01 1.03390e+01 1.03016e+01 1.12654e+01 1.22707e+01 1.40684e+01 9.15279e+00 1.17276e+01 1.14550e+01 1.46256e+01
2 ENSMUST00000000003 5.01868e-06 5.59107e-06 1.60922e-01 2.45402e-01 2.18614e-01 2.24124e-01 2.88035e-01 7.18876e-06 1.74746e-06 0.00000e+00
...
我感興趣的執行shapiro.test兩次,每次行 - 一次在第2列的值:6,一次在列7:11值。
我想獲得兩個函數shapiro.test返回的對象列表,以便從中提取p.value列。我想通過使用功能適用於做,但我的代碼
shapiro.test_CTRL <- apply(data.matrix(df[,2:6]), 1, shapiro.test)
返回一個錯誤
Error in FUN(newX[, i], ...) : all 'x' values are identical
然而,當我使用pearson.test一切正常:
pearson.test_CTRL <- apply(data.matrix(df[,2:6]), 1, pearson.test)
計算shapiro.test只是一行也可以正常工作:
shapiro.test(data.matrix(x[1,2:6]))
我想知道爲什麼使用適用於shapiro.test的方式導致錯誤以及如何正確執行它?