R-Sprache dplyr Paketpraxis

R-Sprache dplyr Paketpraxis

1. Einführung in
dplyr dplyr ist ein Datenanalysepaket in R-Sprache, ähnlich wie Pandas in Python, das sehr bequeme Datenverarbeitungs- und Analysevorgänge für Daten vom Typ Datenrahmen ausführen kann. Zuerst war ich auch von dem seltsamen Namen dplyr überrascht. Ich fand eine der Erklärungen-d steht für dataframe-plyr ist ein Homophon für eine Zange in Englisch

dplyr ist wie die meisten R-Pakete eine funktionale Programmierung, die sich stark von der objektorientierten Python-Programmierung unterscheidet. Der Vorteil ist, dass Anfänger diese Art des funktionalen Denkens eher akzeptieren, das einem Fließband ähnelt. Jede Funktion ist eine Werkstatt, und mehrere Werkstätten erledigen gemeinsam eine Produktionsaufgabe (Datenanalyse).

In dplyr gibt es ein Pipe-Symbol%>%. Die linke Seite des Symbols repräsentiert die Eingabe von Daten und die rechte Seite repräsentiert die nachgeschaltete Datenverarbeitungsverbindung.

2. Installieren und importieren Sie
die Funktion p_load der dplyr-Bibliothek, die die pacman-Bibliothek enthält

  1. install.packages ("dplyr")
  2. Bibliothek (dplyr)
    ist einfacher zu bedienen

pacman :: p_load ("dplyr")


**3. 读取数据**


#Stellen Sie das Arbeitsverzeichnis setwd ein ("/ Users / thunderhit / Desktop / dplyr_learn")


# CSV- Daten importieren aapl <- read.csv ('aapl.csv',
Header = TRUE,
sep = ',',
stringsAsFactors = FALSE)%>% as_tibble ()
head ( aapl )


A tibble: 6 × 6
![](https://s4.51cto.com/images/blog/202012/30/e8ec6453c58ef833f05be96b520b3f66.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
查看数据类型

Klasse (aapl)


'tbl_df'

'tbl'

'data.frame'

查看数据的字段

Spaltennamen (aapl)


'Date'

'Open'

'High'

'Low'

'Close'

'Volume'

查看记录数、字段数

dim (aapl)


251

6

**4. dplyr常用函数**
**4.1 Arrange**
对appl数据按照字段Volume进行降序排序

arrangieren (aapl, -Volume)


A tibble: 6 × 6
![](https://s4.51cto.com/images/blog/202012/30/b85165f87b036f85be4f04d0b9440d7f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
我们也可以用管道符 %>% ,两种写法得到的运行结果是一致的,可能用久了会觉得管道符 %>% 可读性更强,后面我们都会用 %>% 来写代码。

aapl%>% arrangieren (-Volume)


A tibble: 6 × 6
![](https://s4.51cto.com/images/blog/202012/30/3bd99180a44d5679af4f84db43b961cd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
**4.2 Select**
选取 Date、Close和Volume三列

aapl%>% select (Datum, Abschluss, Lautstärke)


![](https://s4.51cto.com/images/blog/202012/30/e8a9d430742058ef02e7d40c63ab0f76.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
只选取Date、Close和Volume三列,其实另外一种表达方式是“排除Open、High、Low,选择剩下的字段的数据”。

aapl%>% select (-c ("Öffnen", "Hoch", "Niedrig"))


![](https://s4.51cto.com/images/blog/202012/30/05de7bd25514a8ddab6357ca7322ef7c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
**4.3 Filter**
按照筛选条件选择数据

#Wählen Sie aus den Daten die Transaktionsdaten mit einem Aktienkurs von mehr als 150 USD
aapl%>% Filter (Schließen> = 150).


![](https://s4.51cto.com/images/blog/202012/30/35242c4f0e45d7329e7033c0f64ef322.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
从数据中选择appl - 股价大于150美元 且 收盘价大于开盘价 的交易数据

aapl%>% filter ((Schließen> = 150) & (Schließen> Öffnen))

![](https://s4.51cto.com/images/blog/202012/30/2a75e95cf0cceed0d7fdee04930053bd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
**4.4 Mutate**
将现有的字段经过计算后生成新字段。

# Definieren Sie das Ergebnis des besten Preises Hoch minus des niedrigsten Preises Niedrig als maxDif und nehmen Sie log aapl
%>% mutate (maxDif = Hoch-Niedrig,
log_maxDif = log (maxDif))

![](https://s4.51cto.com/images/blog/202012/30/1383ab8f2704ff082184be58e9a8cd09.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
得到记录的位置(行数)

aapl%>% mutate (n = row_number ())


![](https://s4.51cto.com/images/blog/202012/30/a6c2415852c4c7d5111adfb062909406.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
**4.5 Group_By**
对资料进行分组,这里导入新的 数据集 weather


# Import von CSV - Daten Wetter <- read.csv ( 'weather.csv',
= Kopf TRUE,
sep = '',
stringsAsFactors = FALSE)%>% as_tibble ()
Wetter


![](https://s4.51cto.com/images/blog/202012/30/e67eb1810297ed7cc07633bcf4a01f49.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
按照城市分组

Wetter%>% group_by (Stadt)


![](https://s4.51cto.com/images/blog/202012/30/d6f71e09428e5262c64f7f9bcab295be.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

Damit jeder die Auswirkungen der Gruppierung sehen kann, berechnen wir die Durchschnittstemperatur nach Stadt.

Wetter%>% group_by (Stadt)%>% zusammenfassen (mittlere_Temperatur = Mittelwert (Temperatur))


`summarise()` ungrouping output (override with `.groups` argument)
![](https://s4.51cto.com/images/blog/202012/30/93a8b1d75bd558a4bd70515761c2bbd9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

Wetter%>% zusammenfassen (mittlere_Temperatur = Mittelwert (Temperatur))



![](https://s4.51cto.com/images/blog/202012/30/8e9afc255c68f598d06a104355e145f5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

Ich denke du magst

Origin blog.51cto.com/15069487/2578579
Empfohlen
Rangfolge