R语言 dplyr进行单表分析
dplyr包是用来通过执行操作和转换来对数据进行模拟的。它可以通过以下命令安装到工作空间。
install.packages("dplyr")
让我们来创建主数据框架。
#installing the required libraries
library(dplyr)
#creating a data frame
data_frame = data.frame(companies = c("Geekster","GeeksforGeeks","Wipro","TCS",
"GeeksforGeeks","GeeksforGeeks","TCS","Wipro",
"Geekster","Wipro"),
people = c(100,NA,532,454,234,554,223,122,432,453),
rating = c(4,3,5,NA,5,3,NA,4,5,2))
print("Original Data frame")
print(data_frame)
输出:
使用拉动法
R中dplyr包中的pull方法被用来以向量的形式提取数据框中的任何列。矢量中显示的数值与它们在数据框中出现的顺序相同。
语法: pull(col-name)
参数: col-name:要被提取为矢量的列名
在下面的代码片断中,属于列公司的值被提取为一个向量。
print("Extracting companies vector from data frame")
print("Companies vector")
data_frame %>%
pull(companies)
输出
使用重命名方法
dplyr包中的rename用于重命名R中任何数据框架列的名称,其变化会保留到原始数据框架中。
语法 :rename(new-col-name = old-col-name)
参数
new-col-name:数据框的新列
old-col-name:数据框的现有列
在下面的代码片段中,评级列被重命名为 feedback_rating。
print("Renaming rating column")
data_frame %>%
rename(feedback_rating = rating)
输出
使用排列法
dplyr包中的排列方法是一种重要的方法,它可以根据至少在一列中存在的值来执行数据的排序。默认情况下,数据会根据被指定为排列方法参数的列,以升序排列。在下面的代码片段中,数据框的行是根据列的等级来排列的,其中具有最小等级的行在输出中首先显示。
语法 :arrange(col-name-to-sort-the-data)
print("Arranging data frame by rating column")
data_frame %>%
arrange(rating)
输出
使用过滤器方法
R中dplyr包中的过滤方法是用来根据指定的条件是否成立来选择原始数据框中的一个行子集。该条件可以使用任何逻辑或比较运算符来过滤必要的值。
语法 : filter(data , cond)
参数
data- 要操作的数据框
cond- 要检查的条件,以过滤数值。
在下面的代码片断中,我们要删除与people列中的NA值相当的值。
print("Arranging data frame by rating column")
data_frame %>%
filter(!is.na(people))
输出
使用归纳法
summarize()方法用于返回单一行的输出。为了做到这一点,它必须将整个列联系起来,变成一个单一的值。
语法 :summarize(most_bellas = max(column_name))
参数: column_name–要进行汇总的列的名称。
# summarize
data_frame %>%
summarize(num_rows = n(),most_bellas = max(companies))
输出
wipro
使用dplyr操纵和分析数据
下面的代码片段,将讨论使用dplyr包对大量单表动词的应用,以便对数据进行操作和分析。
第1步是使用过滤方法从列人中去除NA值。然后对这个结果应用管道运算符,以便通过使用现有的列值来增加一个新的列。通过使用mutate方法将total_people列的值与评级和people列的值相乘,从而将该列添加到数据框中。由此产生的数据框架现在将包含4个列。
接下来是使用select方法选择列,其中只有列、公司和总人数被显示。现在应用group_by方法,根据其中出现的不同公司,对这个数据框进行分组。属于这些组的数据可以使用汇总方法进行静态分析。总结方法创建了一个新的列mean_rating,用每个公司的人的评分之和除以总人数。
1. 创建一个数据框架
#creating a data frame
data_frame = data.frame(companies = c("Geekster","GeeksforGeeks","Wipro","TCS",
"GeeksforGeeks","GeeksforGeeks","TCS","Wipro",
"Geekster","Wipro"),
people = c(100,123,NA,454,234,554,223,122,432,453),
rating = c(4,3,5,2,2,3,1,4,5,3))
print("Original Data frame")
print(data_frame)
输出:
2.根据一个条件过滤数据
#filter data based on condition
print("Application of multiple operations ")
data1 = data_frame %>%
filter(!is.na(people))
print("Data after removal of people with NA value")
print(data1)
输出:
3.使用其他列计算新列
#computing total_people who rated column
data2 = data1%>%
mutate(total_people = rating * people)
print("Data1 on computing on total people who rated")
print(data2)
输出:
4.从数据中选择几列。
#selecting only specific columns
data3 = data2%>%
select(companies,total_people)
print("Data2 on selecting companies and total peoples' ratings")
print(data3)
输出:
5.使用group_by()对数据进行分组
#grouping the data based on company
data4 = data3%>%
group_by(companies)%>%
summarise(mean_rating = sum(total_people)/n())
print("Data grouped on companies and mean rating given")
print(data4)
输出:
极客教程