2014-10-17 34 views
0

我有一個包含分類和數字數據的表格。爲了分開這兩個,我想知道如何訪問表的每一列的數據類型。如何在Matlab中訪問表格每一列的數據類型

因爲我不知道怎麼的,我試過功能iscellstr如下:

for i=1:size(adjusted_dataset,2) 
    if iscellstr(adjusted_dataset(:,i)) 
     adjusted_string = adjusted_dataset(:,i); 
    else 
     adjusted_numerical = adjusted_dataset(:,i); 
    end 
end 

但它似乎並沒有被任何工作。任何幫助,將不勝感激。

彙總表如下所示:

>> summary(adjusted_dataset) 

Variables: 

rev_Mean: 100000x1 double 
    Values: 

     min  -6.1675 
     median  48.195 
     max  3843.3 
     NaNs   357 

mou_Mean: 100000x1 double 
    Values: 

     min   0  
     median 355.5  
     max  12207  
     NaNs  357  

totmrc_Mean: 100000x1 double 
    Values: 

     min  -26.915  
     median  44.99  
     max  409.99  
     NaNs   357  

da_Mean: 100000x1 double 
    Values: 

     min   0 
     median 0.2475 
     max  159.39 
     NaNs   357 

ovrmou_Mean: 100000x1 double 
    Values: 

     min   0  
     median  2.75  
     max  4320.8  
     NaNs   357  

ovrrev_Mean: 100000x1 double 
    Values: 

     min   0  
     median   1  
     max  1102.4  
     NaNs   357  

vceovr_Mean: 100000x1 double 
    Values: 

     min   0  
     median 0.6825  
     max  896.09  
     NaNs   357  

datovr_Mean: 100000x1 double 
    Values: 

     min   0  
     median   0  
     max  423.54  
     NaNs   357  

roam_Mean: 100000x1 double 
    Values: 

     min   0  
     median   0  
     max  3685.2  
     NaNs   357  

rev_Range: 100000x1 double 
    Values: 

     min   0  
     median 16.19  
     max  13741  
     NaNs  357  

mou_Range: 100000x1 double 
    Values: 

     min   0  
     median  244  
     max  43050  
     NaNs  357  

totmrc_Range: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  599.98   
     NaNs   357   

da_Range: 100000x1 double 
    Values: 

     min   0  
     median  0.99  
     max  77.22  
     NaNs  357  

ovrmou_Range: 100000x1 double 
    Values: 

     min   0   
     median  10   
     max  4292   
     NaNs  357   

ovrrev_Range: 100000x1 double 
    Values: 

     min   0   
     median  3.51   
     max  2410.1   
     NaNs   357   

vceovr_Range: 100000x1 double 
    Values: 

     min   0   
     median  2.4   
     max  2409.8   
     NaNs   357   

datovr_Range: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  838.89   
     NaNs   357   

roam_Range: 100000x1 double 
    Values: 

     min   0  
     median  0  
     max  13623  
     NaNs  357  

change_mou: 100000x1 double 
    Values: 

     min  -3875  
     median -6.25  
     max  31219  
     NaNs  891  

change_rev: 100000x1 double 
    Values: 

     min  -1107.7  
     median  -0.315  
     max  9963.7  
     NaNs   891  

drop_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median   3   
     max  232.67   

drop_dat_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  207.33   

blck_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median   1   
     max  385.33   

blck_dat_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  413.33   

unan_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median  16   
     max  848.67   

unan_dat_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  81.667   

plcd_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median 100.33   
     max   2289   

plcd_dat_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  733.67   

recv_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median 26.667   
     max  3369.3   

recv_sms_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  517.33   

comp_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median 75.667   
     max  1894.3   

comp_dat_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  559.33   

custcare_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  675.33   

ccrndmou_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  861.33   

cc_mou_Mean: 100000x1 double 
    Values: 

     min   0  
     median   0  
     max  602.95  

inonemin_Mean: 100000x1 double 
    Values: 

     min   0   
     median 12.333   
     max  3086.7   

threeway_Mean: 100000x1 double 
    Values: 

     min  0    
     median  0    
     max  66    

mou_cvce_Mean: 100000x1 double 
    Values: 

     min   0   
     median  146.2   
     max  4514.5   

mou_cdat_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  3032.1   

mou_rvce_Mean: 100000x1 double 
    Values: 

     min   0   
     median  50.2   
     max  3287.2   

owylis_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median  13   
     max  644.33   

mouowylisv_Mean: 100000x1 double 
    Values: 

     min   0   
     median 11.977   
     max  1802.7   

iwylis_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median   2   
     max  519.33   

mouiwylisv_Mean: 100000x1 double 
    Values: 

     min   0   
     median  3.21   
     max  1703.5   

peak_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median 60.333   
     max  2090.7   

peak_dat_Mean: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  281    

mou_peav_Mean: 100000x1 double 
    Values: 

     min   0   
     median 115.37   
     max  4015.3   

mou_pead_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  1036.1   

opk_vce_Mean: 100000x1 double 
    Values: 

     min   0   
     median 34.333   
     max  1643.3   

opk_dat_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  309.67   

mou_opkv_Mean: 100000x1 double 
    Values: 

     min   0   
     median 75.842   
     max  4337.9   

mou_opkd_Mean: 100000x1 double 
    Values: 

     min   0   
     median  0   
     max  2922   

drop_blk_Mean: 100000x1 double 
    Values: 

     min   0   
     median 5.3333   
     max  489.67   

attempt_Mean: 100000x1 double 
    Values: 

     min   0   
     median  101   
     max  2289   

complete_Mean: 100000x1 double 
    Values: 

     min   0   
     median  76   
     max  1894.3   

callfwdv_Mean: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  81.333   

callwait_Mean: 100000x1 double 
    Values: 

     min    0   
     median 0.33333   
     max  212.67   

drop_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  3    
     max  313    

drop_dat_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  143    

blck_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  1    
     max  739    

blck_dat_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  680    

unan_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  11    
     max  1395    

unan_dat_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  223    

plcd_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  43    
     max  2656    

plcd_dat_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  1352    

recv_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  14    
     max  2109    

recv_sms_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  244    

comp_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  32    
     max  1748    

comp_dat_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  1274    

custcare_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  690    

ccrndmou_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  1590    

cc_mou_Range: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  1201.8   

inonemin_Range: 100000x1 double 
    Values: 

     min   0    
     median  8    
     max  1879    

threeway_Range: 100000x1 double 
    Values: 

     min  0    
     median  0    
     max  95    

mou_cvce_Range: 100000x1 double 
    Values: 

     min   0   
     median  78.07   
     max  5439.6   

mou_cdat_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  3748    

mou_rvce_Range: 100000x1 double 
    Values: 

     min   0   
     median  34.73   
     max  7146.7   

owylis_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  8    
     max  699    

mouowylisv_Range: 100000x1 double 
    Values: 

     min   0    
     median  9.43    
     max  1897.2    

iwylis_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  2    
     max  441    

mouiwylisv_Range: 100000x1 double 
    Values: 

     min   0    
     median  4.4    
     max  2011.3    

peak_vce_Range: 100000x1 double 
    Values: 

     min   0    
     median  28    
     max  1291    

peak_dat_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  350    

mou_peav_Range: 100000x1 double 
    Values: 

     min   0   
     median 64.855   
     max   4113   

mou_pead_Range: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  1851.8   

opk_vce_Range: 100000x1 double 
    Values: 

     min   0   
     median  19   
     max  1679   

opk_dat_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  929    

mou_opkv_Range: 100000x1 double 
    Values: 

     min   0   
     median  52.97   
     max  4783.7   

mou_opkd_Range: 100000x1 double 
    Values: 

     min   0   
     median   0   
     max  2881.6   

drop_blk_Range: 100000x1 double 
    Values: 

     min   0    
     median  5    
     max  724    

attempt_Range: 100000x1 double 
    Values: 

     min   0   
     median  44   
     max  2669   

complete_Range: 100000x1 double 
    Values: 

     min   0    
     median  32    
     max  2028    

callfwdv_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  102    

callwait_Range: 100000x1 double 
    Values: 

     min   0    
     median  0    
     max  227    

churn: 100000x1 categorical 
    Values: 

     0 50438 
     1 49562 

months: 100000x1 double 
    Values: 

     min  6  
     median 16  
     max  61  

uniqsubs: 100000x1 categorical 
    Values: 

     1  61966  
     2  27556  
     3  6579  
     4  2556  
     5  835  
     6  315  
     7  111  
     8   40  
     9   20  
     10   9  
     11   5  
     12   4  
     13   2  
     18   1  
     196  1  

actvsubs: 100000x1 categorical 
    Values: 

     0  81  
     1  70524  
     2  24422  
     3  3776  
     4  899  
     5  262  
     6  20  
     7   5  
     8   6  
     9   3  
     11  1  
     53  1  

new_cell: 100000x1 cell string 

crclscod: 100000x1 cell string 

asl_flag: 100000x1 cell string 

totcalls: 100000x1 double 
    Values: 

     min   0  
     median  1822  
     max  98874  

totmou: 100000x1 double 
    Values: 

     min    0 
     median  5191.5 
     max  2.3342e+05 

totrev: 100000x1 double 
    Values: 

     min   3.65 
     median 804.53 
     max  27322 

adjrev: 100000x1 double 
    Values: 

     min   2.4 
     median 737.76 
     max  27071 

adjmou: 100000x1 double 
    Values: 

     min    0 
     median  5102.5 
     max  2.3286e+05 

adjqty: 100000x1 double 
    Values: 

     min   0 
     median  1789 
     max  98705 

avgrev: 100000x1 double 
    Values: 

     min   0.48 
     median  49.89 
     max  924.27 

avgmou: 100000x1 double 
    Values: 

     min   0 
     median 360.19 
     max  7040.1 

avgqty: 100000x1 double 
    Values: 

     min   0 
     median  127.5 
     max  3017.1 

avg3mou: 100000x1 double 
    Values: 

     min   0  
     median  358  
     max  7716  

avg3qty: 100000x1 double 
    Values: 

     min   0  
     median  125  
     max  3909  

avg3rev: 100000x1 double 
    Values: 

     min   1  
     median  48  
     max  1593  

avg6mou: 100000x1 double 
    Values: 

     min   0  
     median  363  
     max  7217  
     NaNs  2839  

avg6qty: 100000x1 double 
    Values: 

     min   0  
     median  127  
     max  3256  
     NaNs  2839  

avg6rev: 100000x1 double 
    Values: 

     min   -2  
     median  50  
     max  866  
     NaNs  2839  

prizm_social_one: 100000x1 cell string 

csa: 100000x1 cell string 

area: 100000x1 cell string 

dualband: 100000x1 cell string 

refurb_new: 100000x1 cell string 

hnd_price: 100000x1 double 
    Values: 

     min   9.99  
     median  99.99  
     max  499.99  
     NaNs   847  

pre_hnd_price: 100000x1 double 
    Values: 

     min   9.99   
     median  59.99   
     max  499.99   
     NaNs  57515   

phones: 100000x1 double 
    Values: 

     min  1  
     median  1  
     max  28  
     NaNs  1  

last_swap: 100000x1 cell string 

models: 100000x1 double 
    Values: 

     min  1  
     median  1  
     max  16  
     NaNs  1  

hnd_webcap: 100000x1 cell string 

truck: 100000x1 categorical 
    Values: 

     0    79713 
     1    18555 
     <undefined>  1732 

mtrcycle: 100000x1 categorical 
    Values: 

     0    96867  
     1    1401  
     <undefined>  1732  

rv: 100000x1 categorical 
    Values: 

     0    90153 
     1    8115 
     <undefined>  1732 

ownrent: 100000x1 cell string 

lor: 100000x1 categorical 
    Values: 

     0    2193 
     1    10016 
     2    8985 
     3    5849 
     4    5409 
     5    4928 
     6    4485 
     7    4269 
     8    3632 
     9    2979 
     10    2330 
     11    1982 
     12    1703 
     13    1651 
     14    1222 
     15    8177 
     <undefined> 30190 

dwlltype: 100000x1 cell string 

marital: 100000x1 cell string 

mailordr: 100000x1 cell string 

age1: 100000x1 double 
    Values: 

     min   0 
     median  36 
     max   99 
     NaNs  1732 

age2: 100000x1 double 
    Values: 

     min   0 
     median  0 
     max   99 
     NaNs  1732 

mailresp: 100000x1 cell string 

children: 100000x1 cell string 

adults: 100000x1 double 
    Values: 

     min   1 
     median  2 
     max   6 
     NaNs  23019 

infobase: 100000x1 cell string 

income: 100000x1 categorical 
    Values: 

     1    4033 
     2    2260 
     3    5830 
     4    7790 
     5    8277 
     6    18802 
     7    11597 
     8    5142 
     9    10833 
     <undefined> 25436 

numbcars: 100000x1 double 
    Values: 

     min   1  
     median  1  
     max   3  
     NaNs  49366  

cartype: 100000x1 cell string 

HHstatin: 100000x1 cell string 

dwllsize: 100000x1 cell string 

forgntvl: 100000x1 categorical 
    Values: 

     0    92571  
     1    5697  
     <undefined>  1732  

ethnic: 100000x1 cell string 

kid0_2: 100000x1 cell string 

kid3_5: 100000x1 cell string 

kid6_10: 100000x1 cell string 

kid11_15: 100000x1 cell string 

kid16_17: 100000x1 cell string 

creditcd: 100000x1 cell string 

car_buy: 100000x1 cell string 

eqpdays: 100000x1 double 
    Values: 

     min   -5  
     median  342  
     max  1823  
     NaNs   1  

Customer_ID: 100000x1 double 
    Values: 

     min   1e+06  
     median 1.05e+06  
     max  1.1e+06  
+0

也許我誤解了,但數字/分類數據總是在同一列或不一定? – 2014-10-17 17:35:16

+0

不,他們不是。例如,第一列是數字,並且該列中的每個數據都是數字,其次是數字等。 – Ege 2014-10-17 17:39:43

+0

好的,你可以顯示一下表的內容嗎?它可能不工作,因爲你沒有索引adjust_string或adjusted_numerical,因此這些值通過循環被重複覆蓋。 – 2014-10-17 17:50:10

回答

0

下面是一些示例代碼,做你在找什麼。我修改了Mathworks文檔中的示例表格,但您可以將代碼應用於您的代碼。請注意,在我的例子中,我沒有分類數據(我有點懶惰抱歉:P),但你會看到它不會改變代碼。

關於表格及其屬性以及如何訪問其中的數據,還有大量的信息here

clear all 
clc 

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'}; 
Age = [38;43;38;40;49]; 
FirstName = {'Amanda' ;'Brenda';'Carl'; 'Denis'; 'Ethan'}; 
Weight = [176;163;131;133;119]; 
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80]; 
FavoriteColor = {'blue' ;'red' ;'yellow'; 'orange' ;'colorblind' }; 

T = table(Age,FirstName,Weight,BloodPressure,FavoriteColor,... 
    'RowNames',LastName) 

表看起來是這樣的:

T = 

       Age FirstName Weight BloodPressure FavoriteColor 
       ___ _________ ______ _____________ _____________ 

    Smith  38  'Amanda'  176  124  93  'blue'  
    Johnson  43  'Brenda'  163  109  77  'red'   
    Williams 38  'Carl'  131  125  83  'yellow'  
    Jones  40  'Denis'  133  117  75  'orange'  
    Brown  49  'Ethan'  119  122  80  'colorblind' 

%// Initialize. Since we don't know the size beforehand, make the cell arrays 
%//bigger ans afterwards remove empty cells. 
CategoricalData = cell(size(T,2),1); 
NumericData = cell(size(T,2),1); 
StringcData = cell(size(T,2),1); 

%// Check different conditions and append data to respective cell arrays. 
for k = 1:size(T,2) 

    CurrentData = T{:,k}; %// Access all rows of a given column. 

    if iscategorical(CurrentData) 

     CategoricalData{k} = CurrentData; 

    elseif iscellstr(CurrentData) 

     StringcData{k} = CurrentData; 

    else 

     NumericData{k} = CurrentData; 
    end 
end 

%// Remove empty cells 
CategoricalData(cellfun('isempty',CategoricalData)) = []; 
NumericData(cellfun('isempty',NumericData)) = []; 
StringcData(cellfun('isempty',StringcData)) = []; 

%// Display results 
CategoricalData 
NumericData 
StringcData 

而結果:

CategoricalData = 

    Empty cell array: 0-by-1 


NumericData = 

    [5x1 double] 
    [5x1 double] 
    [5x2 double] 


StringcData = 

    {5x1 cell} 
    {5x1 cell} 

這就是它。希望有所幫助!

+0

謝謝你的回答。將代碼應用到我的數據後,我得到的結果爲StringcData = {100000x1 cell} NumericData = [100000x1 double]等等。我想要的是從數據集中查找字符串數據並在StringcData變量中保留這些字符串列。 – Ege 2014-10-17 20:56:27

+0

我的意思是我可以從代碼中學習多少個分類數據列,但我希望這些列中的實際分類數據保留在不同的表中。 – Ege 2014-10-17 20:59:30

+0

抱歉,延遲。我不確定要得到它;你想訪問單元格數組中的數據是嗎?您可以通過多種方式獲取內容,例如A = StringcData {:}。 – 2014-10-20 12:03:13

相關問題