在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)分析&挖掘/ R語言數(shù)據(jù)重塑
R語言列表
R語言隨機(jī)森林
R語言矩陣
R語言邏輯回歸
R語言數(shù)據(jù)幀
R語言數(shù)據(jù)重塑
R語言概述
R語言包
R語言字符串
R語言CSV文件
R語言運(yùn)算符
為什么使用R語言做統(tǒng)計(jì)?
R語言Web數(shù)據(jù)
R語言二進(jìn)制文件
R語言XML文件
R語言JSON文件
R語言因子
R語言容易學(xué)習(xí)嗎?
R語言基礎(chǔ)語法
R語言向量
R語言教程
R語言正態(tài)分布
R語言平均值,中位數(shù)和眾數(shù)
R語言變量
R語言條形圖
R語言決策樹
R語言開發(fā)環(huán)境安裝配置
R語言數(shù)組
R語言數(shù)據(jù)類型
R語言非線性最小二乘法
R語言直方圖
R語言卡方檢驗(yàn)
R語言泊松回歸
R語言決策結(jié)構(gòu)
R語言盒形圖(箱形圖)
R語言協(xié)方差分析
R語言二項(xiàng)分布
R語言餅狀圖
R語言循環(huán)
R語言散點(diǎn)圖
R語言線性回歸
R語言時(shí)間序列分析
R語言線形圖
R語言在現(xiàn)實(shí)中的應(yīng)用
R語言生存分析
R語言多元(多重)回歸
R語言函數(shù)
R語言Excel文件
R語言連接數(shù)據(jù)庫(MySQL)

R語言數(shù)據(jù)重塑

R中的數(shù)據(jù)重整是關(guān)于將數(shù)據(jù)組織成行和列的方式。 R中的大多數(shù)時(shí)間數(shù)據(jù)處理是通過將輸入數(shù)據(jù)作為數(shù)據(jù)幀來完成的。 很容易從數(shù)據(jù)幀的行和列中提取數(shù)據(jù),但是有些情況下,我們需要的格式與收到的格式不同。 R具有許多函數(shù),用于在數(shù)據(jù)幀中拆分,合并和更改行到列,反之亦然。

在數(shù)據(jù)框中連接列和行

我們可以使用cbind()函數(shù)連接多個(gè)向量來創(chuàng)建數(shù)據(jù)幀。也可以使用rbind()函數(shù)合并兩個(gè)數(shù)據(jù)幀。

# Create vector objects.
city <- c("Tampa","Seattle","Hartford","Denver")
state <- c("FL","WA","CT","CO")
zipcode <- c(33602,98104,06161,80294)

# Combine above three vectors into one data frame.
addresses <- cbind(city,state,zipcode)

# Print a header.
cat("# # # # The First data frame\n") 

# Print the data frame.
print(addresses)

# Create another data frame with similar columns
new.address <- data.frame(
   city = c("Lowry","Charlotte"),
   state = c("CO","FL"),
   zipcode = c("80230","33949"),
   stringsAsFactors = FALSE
)

# Print a header.
cat("# # # The Second data frame\n") 

# Print the data frame.
print(new.address)

# Combine rows form both the data frames.
all.addresses <- rbind(addresses,new.address)

# Print a header.
cat("# # # The combined data frame\n") 

# Print the result.
print(all.addresses)

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -

# # # # The First data frame
     city       state zipcode
[1,] "Tampa"    "FL"  "33602"
[2,] "Seattle"  "WA"  "98104"
[3,] "Hartford" "CT"   "6161" 
[4,] "Denver"   "CO"  "80294"

# # # The Second data frame
       city       state   zipcode
1      Lowry      CO      80230
2      Charlotte  FL      33949

# # # The combined data frame
       city      state zipcode
1      Tampa     FL    33602
2      Seattle   WA    98104
3      Hartford  CT     6161
4      Denver    CO    80294
5      Lowry     CO    80230
6     Charlotte  FL    33949

合并數(shù)據(jù)幀

可以使用merge()函數(shù)合并兩個(gè)數(shù)據(jù)幀。數(shù)據(jù)幀必須具有相同的列名稱,合并發(fā)生。

在下面的例子中,我們考慮了Pima印度婦女的糖尿病數(shù)據(jù)庫,可以在名稱為“MASS”的庫中找到。 我們根據(jù)血壓值(“bp”)和體重指數(shù)(“bmi”)合并兩個(gè)數(shù)據(jù)集。 在選擇這兩列進(jìn)行合并時(shí),這兩個(gè)變量的值在兩個(gè)數(shù)據(jù)集中匹配的記錄被組合在一起以形成單個(gè)數(shù)據(jù)幀。參考以下代碼實(shí)現(xiàn) -

library(MASS)
merged.Pima <- merge(x = Pima.te, y = Pima.tr,
   by.x = c("bp", "bmi"),
   by.y = c("bp", "bmi")
)
print(merged.Pima)
nrow(merged.Pima)

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -

 npreg.x glu.x skin.x ped.x age.x type.x npreg.y glu.y skin.y
1  60 33.8       1   117     23 0.466    27     No       2   125     20
2  64 29.7       2    75     24 0.370    33     No       2   100     23
3  64 31.2       5   189     33 0.583    29    Yes       3   158     13
4  64 33.2       4   117     27 0.230    24     No       1    96     27
5  66 38.1       3   115     39 0.150    28     No       1   114     36
6  68 38.5       2   100     25 0.324    26     No       7   129     49
7  70 27.4       1   116     28 0.204    21     No       0   124     20
8  70 33.1       4    91     32 0.446    22     No       9   123     44
9  70 35.4       9   124     33 0.282    34     No       6   134     23
10 72 25.6       1   157     21 0.123    24     No       4    99     17
11 72 37.7       5    95     33 0.370    27     No       6   103     32
12 74 25.9       9   134     33 0.460    81     No       8   126     38
13 74 25.9       1    95     21 0.673    36     No       8   126     38
14 78 27.6       5    88     30 0.258    37     No       6   125     31
15 78 27.6      10   122     31 0.512    45     No       6   125     31
16 78 39.4       2   112     50 0.175    24     No       4   112     40
17 88 34.5       1   117     24 0.403    40    Yes       4   127     11
   ped.y age.y type.y
1  0.088    31     No
2  0.368    21     No
3  0.295    24     No
4  0.289    21     No
5  0.289    21     No
6  0.439    43    Yes
7  0.254    36    Yes
8  0.374    40     No
9  0.542    29    Yes
10 0.294    28     No
11 0.324    55     No
12 0.162    39     No
13 0.162    39     No
14 0.565    49    Yes
15 0.565    49    Yes
16 0.236    38     No
17 0.598    28     No

拆分?jǐn)?shù)據(jù)和重構(gòu)數(shù)據(jù)

R編程最有趣的一個(gè)方面是在多個(gè)步驟中改變數(shù)據(jù)的形狀以獲得所需的形狀。 用于執(zhí)行此操作的函數(shù)稱為melt()cast()。

考慮使用“MASS”庫中存在的數(shù)據(jù)集。

library(MASS)
print(ships)

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -

     type year   period   service   incidents
1     A   60     60        127         0
2     A   60     75         63         0
3     A   65     60       1095         3
4     A   65     75       1095         4
5     A   70     60       1512         6
.............
.............
8     A   75     75       2244         11
9     B   60     60      44882         39
10    B   60     75      17176         29
11    B   65     60      28609         58
............
............
17    C   60     60      1179          1
18    C   60     75       552          1
19    C   65     60       781          0
............
............

拆分?jǐn)?shù)據(jù)

現(xiàn)在,我們將數(shù)據(jù)融合到一起,將除了類型和年份之外的所有列轉(zhuǎn)為行 -

molten.ships <- melt(ships, id = c("type","year"))
print(molten.ships)

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -

      type year  variable  value
1      A   60    period      60
2      A   60    period      75
3      A   65    period      60
4      A   65    period      75
............
............
9      B   60    period      60
10     B   60    period      75
11     B   65    period      60
12     B   65    period      75
13     B   70    period      60
...........
...........
41     A   60    service    127
42     A   60    service     63
43     A   65    service   1095
...........
...........
70     D   70    service   1208
71     D   75    service      0
72     D   75    service   2051
73     E   60    service     45
74     E   60    service      0
75     E   65    service    789
...........
...........
101    C   70    incidents    6
102    C   70    incidents    2
103    C   75    incidents    0
104    C   75    incidents    1
105    D   60    incidents    0
106    D   60    incidents    0
...........
...........

重構(gòu)數(shù)據(jù)

我們可以將拆分的數(shù)據(jù)轉(zhuǎn)換為一種新形式,使用cast()函數(shù)創(chuàng)建每年每種類型的船的總和。

recasted.ship <- cast(molten.ships, type+year~variable,sum)
print(recasted.ship)

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -

     type year  period  service  incidents
1     A   60    135       190      0
2     A   65    135      2190      7
3     A   70    135      4865     24
4     A   75    135      2244     11
5     B   60    135     62058     68
6     B   65    135     48979    111
7     B   70    135     20163     56
8     B   75    135      7117     18
9     C   60    135      1731      2
10    C   65    135      1457      1
11    C   70    135      2731      8
12    C   75    135       274      1
13    D   60    135       356      0
14    D   65    135       480      0
15    D   70    135      1557     13
16    D   75    135      2051      4
17    E   60    135        45      0
18    E   65    135      1226     14
19    E   70    135      3318     17
20    E   75    135       542      1