The R Project SVN R

Rev

Rev 31894 | Rev 32350 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 31894 Rev 31908
Line 964... Line 964...
964
	    CLICKJ;
964
	    CLICKJ;
965
	}
965
	}
966
	break;
966
	break;
967
 
967
 
968
    default:
968
    default:
969
	errorcall(call, "unsupported type of array");
969
	UNIMPLEMENTED_TYPE("aperm", a);
970
    }
970
    }
971
 
971
 
972
    /* handle the resize */
972
    /* handle the resize */
973
    PROTECT(resize = coerceVector(CADDR(args), INTSXP));
973
    PROTECT(resize = coerceVector(CADDR(args), INTSXP));
974
    if (LOGICAL(resize)[0])
974
    if (LOGICAL(resize)[0])
Line 1061... Line 1061...
1061
		ix = LOGICAL(x) + n*j;
1061
		ix = LOGICAL(x) + n*j;
1062
		for (cnt = 0, sum = 0., i = 0; i < n; i++, ix++)
1062
		for (cnt = 0, sum = 0., i = 0; i < n; i++, ix++)
1063
		    if (*ix != NA_LOGICAL) {cnt++; sum += *ix;}
1063
		    if (*ix != NA_LOGICAL) {cnt++; sum += *ix;}
1064
		    else if (keepNA) {sum = NA_REAL; break;}
1064
		    else if (keepNA) {sum = NA_REAL; break;}
1065
		break;
1065
		break;
-
 
1066
	    default:
-
 
1067
		/* we checked the type above, but be sure */
-
 
1068
		UNIMPLEMENTED_TYPEt("do_colsum", type);
1066
	    }
1069
	    }
1067
	    if (OP == 1) {
1070
	    if (OP == 1) {
1068
		if (cnt > 0) sum /= cnt; else sum = NA_REAL;
1071
		if (cnt > 0) sum /= cnt; else sum = NA_REAL;
1069
	    }
1072
	    }
1070
	    REAL(ans)[j] = sum;
1073
	    REAL(ans)[j] = sum;
Line 1128... Line 1131...
1128
		ix = LOGICAL(x) + i;
1131
		ix = LOGICAL(x) + i;
1129
		for (cnt = 0, sum = 0., j = 0; j < p; j++, ix += n)
1132
		for (cnt = 0, sum = 0., j = 0; j < p; j++, ix += n)
1130
		    if (*ix != NA_LOGICAL) {cnt++; sum += *ix;}
1133
		    if (*ix != NA_LOGICAL) {cnt++; sum += *ix;}
1131
		    else if (keepNA) {sum = NA_REAL; break;}
1134
		    else if (keepNA) {sum = NA_REAL; break;}
1132
		break;
1135
		break;
-
 
1136
	    default:
-
 
1137
		/* we checked the type above, but be sure */
-
 
1138
		UNIMPLEMENTED_TYPEt("do_colsum", type);
1133
	    }
1139
	    }
1134
	    if (OP == 3) {
1140
	    if (OP == 3) {
1135
		if (cnt > 0) sum /= cnt; else sum = NA_REAL;
1141
		if (cnt > 0) sum /= cnt; else sum = NA_REAL;
1136
	    }
1142
	    }
1137
	    REAL(ans)[i] = sum;
1143
	    REAL(ans)[i] = sum;