R语言数据分析-练习题【学习总结20201030】[1-20]

前言

1-20题

1.创建数据框

一般用data.frame,Python中也是,只不过是pd.DataFrame

#######R语言数据分析#############
###1.创建数据框##
df <- data.frame(
  "grammer" = c("Python","C","Java","GO",NA,"SQL","PHP","Python"),
  "score" = c(1,2,NA,4,5,6,7,10))
#1.1 第二种
library(tibble)
df <- tibble(
  "grammer" = c("Python","C","Java","GO",NA,"SQL","PHP","Python"),
  "score" = c(1,2,NA,4,5,6,7,10)
)
# 也可用tibble

2.数据提取

会用到’$'和which函数

df[which(df$grammer == 'Python'),]

3.提取列名

names(df)

4.修改列名

tidyverse需要安装一下,
install.packages(‘tidyverse’)

########4.修改列名#############
library(tidyverse)
df = df %>% rename(popularity = score)
df

其中%>%为管道函数
自行查看管道函数的说明
特别的,这种方法只针对tibble创建的数据框,dataframe不行,会报错.ni try yi try

5.字符统计

########5.字符统计##########
table(df$grammer)

6.缺失值处理

########6.缺失值处理##########
df['popularity'] = df['popularity'].fillna(df['popularity'].interpolate()
library(Hmisc)
index <- which(is.na(df$popularity))
index # 返回popularity
df$popularity <- impute(df$popularity,(unlist(df[index-1, 2] + df[index+1, 2]))/2) 
# 缺失值的上下行取均值进行填充
# df[行,列]

如果出现下面情况,请使用install.packages(‘包名’)安装即可,以后出现都按此步骤

Error in library(Hmisc) : 不存在叫‘Hmisc’这个名字的程辑包

7.数据提取

#####7.数据提取########
df %>% filter(popularity > 3)
# 也可以使用
df[df$popularity > 3,] 

8.数据去重

#####8.数据去重######
df[!duplicated(df$grammer),] # 只保留第一次出现的
df# df原始数据并未发生变化,也就是没有在原数据上改动

9.数据计算

#######9.数据计算######
mean(df$popularity) # 计算popularity的均值(数值型)
# 等价
df %>% summarise(mean = mean(popularity))

10.格式转换

#######10.格式转换#####
unlist(df$grammer) # 转为list

11.数据存储

####11.数据保存########
# 第一种
library(readr)
write_excel_csv(df,'filename.csv')
# 第二种
library(openxlsx)
openxlsx::write.xlsx(df,'filename.xlsx')
# 第三种 强烈不推荐
Sys.getenv("JAVA_HOME")
install.packages('rJava')
install.packages("xlsxjars")
library(rJava)
library(xlsxjars)
xlsx::write.xlsx(df,'filename.xlsx')

12.数据查看

dim(df)

13.数据提取


####13.数据提取######
# 提取popularity列值大于3小于7的行
library(dplyr)
df %>% filter(popularity > 3 & popularity <7)
# 等价写法
df[(df$popularity > 3) & (df$popularity < 7),]

14.位置处理

就是选择列名,然后提取出来

#####14.位置处理#######
# 交换两列的位置
df <- df %>%
  select(popularity,everything())
# everything(): Matches all variables.匹配所有的变量
starwars %>% select(homeworld, height, mass)
starwars

15.数据提取

########15.数据提取##########
# 提取popularity列最大值所在行
df %>% filter(popularity == max(popularity))
# 等价
df[df$popularity==max(df$popularity),]

16.数据查看

######16.数据查看#####
# 查看前,最后5行数据
head(df,5)
tail(df,5)

17.数据修改

########17.数据修改#########
# 删除最后一行
df[-dim(df)[1],] # dim(df)[1]返回8
# 等价写法
df %>% filter(rownames(df) != max(rownames(df))) 

filter真的很好用!!!

18.数据修改


######18.数据修改########

# 添加一行数据['Perl',6.6]
row = c(6.6,'Perl') # 需要和列位置对应
df = rbind(df,row)
df

另一种解法

row <- data.frame(
 "grammer" = c("Perl"),
 "popularity" = c(6.6)
)

这里也可以去掉c()。直接赋值

19.数据整理

对’popularity’列值的大小进行排序

df <- df %>%
 arrange(popularity)

20.字符统计

统计每个字符的长度

library(Hmisc)
library(stringr)
df$grammer <- impute(df$grammer,'R') # 缺失值填充
str_length(df$grammer) # 返回一个字符统计的向量
df$len_str <- str_length(df$grammer) # 重新将这向量数据,组合到数据框中。

用到str_length()函数
第一期这些关键的函数,必须要会熟练的掌握。比如which、impute、filter…

你可能感兴趣的:(R语言,数据分析)