近日,在自定义某函数时,需要对数据框字段的类型进行识别,就想到了用applay与 is.numeric 函数进行配合判断,结果却却返回FALSE,而当用 is.numeric 单独判断时,却能正确识别!不知何因,请专家解答解答,谢谢!
str(churn)
'data.frame': 18550 obs. of 40 variables:
$ Usage_Band : Factor w/ 4 levels "低使用率","高使用率",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Tariff_OK : Factor w/ 4 levels "High CAT 100",..: 4 4 4 4 4 4 4 4 4 4 ...
$ Tariff : Factor w/ 5 levels "CAT 100","CAT 200",..: 3 3 3 3 3 3 3 3 3 4 ...
$ Handset : Factor w/ 11 levels "ASAD170","ASAD90",..: 10 10 9 10 10 9 9 10 9 9 ...
$ Gender : Factor w/ 2 levels "男","女": 1 1 1 1 1 1 1 1 1 1 ...
$ Customer_ID : Factor w/ 18550 levels "K100130","K100150",..: 1 2 3 4 5 6 7 8 9 10 ...
$ Weekend_mins_Trend : num 0.4351 -0.2073 0.0911 1.0619 -0.4561 ...
$ Weekend_mins : num 3.05 22.8 11.99 7.43 38.5 ...
$ Weekend_mins_Ratio : num 0.0327 0.1484 0.1583 0.1164 0.2211 ...
$ Weekend_mins_Fluctuation: num 6 0.366 0.399 6 0.524 ...
$ Weekend_calls : int 1 14 6 1 20 0 0 0 5 46 ...
...
> is.numeric(churn$Usage_Band)
[1] FALSE
> is.numeric(churn$Weekend_mins_Trend)
[1] TRUE
> apply(churn,2,is.numeric)
Usage_Band Tariff_OK Tariff
FALSE FALSE FALSE
Handset Gender Customer_ID
FALSE FALSE FALSE
Weekend_mins_Trend Weekend_mins Weekend_mins_Ratio
FALSE FALSE FALSE
Weekend_mins_Fluctuation Weekend_calls Total_Cost
FALSE FALSE FALSE
Total_call_cost Peak_mins_Trend Peak_mins
FALSE FALSE FALSE
Peak_mins_Ratio Peak_mins_Fluctuation Peak_calls
FALSE FALSE FALSE
OffPeak_mins_Trend OffPeak_mins OffPeak_mins_Ratio
FALSE FALSE FALSE
OffPeak_mins_Fluctuation OffPeak_calls National_calls
FALSE FALSE FALSE
National.mins Nat_call_cost Mins_charge
FALSE FALSE FALSE
L_O_S International_mins International_mins_Ratio
FALSE FALSE FALSE
Churn call_cost_per_min AveWeekend
FALSE FALSE FALSE
average.cost.min AvePeak AveOffPeak
FALSE FALSE FALSE
AveNational All_calls_mins Age
FALSE FALSE FALSE
actual.call.cost
FALSE