1

The psych::fa() result as below:

    Standardized loadings (pattern matrix) based upon correlation matrix
      MR1   MR2    h2   u2 com
q02  0.05  0.67  0.46 0.54 1.0
q04 -0.21  0.42  0.31 0.69 2.0
q05  0.05  0.74  0.57 0.43 1.2
q06 -0.01  0.85  0.72 0.28 1.0
q07  0.03  0.72  0.52 0.48 1.1
q08  0.03  0.73  0.55 0.45 1.1
q09  0.06  0.74  0.60 0.40 1.1
q10  0.08  0.68  0.47 0.53 1.1
q11  0.10  0.71  0.50 0.50 1.1
q12  0.05  0.83  0.71 0.29 1.0
q13 -0.07  0.91  0.83 0.17 1.0
q14  0.00  0.91  0.83 0.17 1.0
q15  0.01  0.74  0.55 0.45 1.0
q46  0.85 -0.04  0.69 0.31 1.1
q47  0.61  0.11  0.29 0.71 1.3
q48  0.87  0.04  0.78 0.22 1.1
q49  0.78  0.00  0.71 0.29 1.0
q51  0.63 -0.03  0.56 0.44 1.2
q52  0.78  0.07  0.73 0.27 1.1
q53  0.62  0.01  0.39 0.61 1.0
q54  0.55 -0.11  0.50 0.50 1.5
q55  0.87  0.08  0.78 0.22 1.0
q56  0.67 -0.03  0.62 0.38 1.2
q57  0.28 -0.01  0.59 0.41 1.0
q58  0.54  0.09  0.33 0.67 1.2
q59  0.89  0.10  0.79 0.21 1.0
q60  0.85 -0.03  0.71 0.29 1.0    

Check the result row by row, you can find q57 loading of each factor <0.3(max value =0.28 in MR1),which means this item should be removed.
It's hard to check data one by one, how to find the item loading of each factor <0.3?

Chris Kelly
  • 115
  • 8
  • It's easier to help you if you provide a [reproducible example](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) with sample input data and the code you used to generate the object above. Clearly specify the desired output for the sample input. – MrFlick Aug 03 '17 at 14:32

1 Answers1

0

Assuming the loading of a factor is smaller than 0.3 when both MR1 and MR2 are smaller than 0.3, you can use pmax instead of max to get the maximum of two vectors pair-wise, as follows:

df = df[pmax(df$MR1,df$MR2)<0.3,]

which returns

     MR1   MR2   h2   u2 com
q57 0.28 -0.01 0.59 0.41   1

You can remove that row with

df = df[-which(pmax(df$MR1,df$MR2)<0.3),]
Florian
  • 24,425
  • 4
  • 49
  • 80