一些好操作

 

读入在桌面的文件:

read_csv("C://Users//Administrator//Desktop//data_market.csv")

*names*
显示数据集中各变量的名字

*n_distinct* 
向量中元素的种类

*unique*
向量中每种元素各一个依次排列所形成的向量

如:a <- c(1,2,3,3,4,7,6)
n_distinct(a)得到6,unique(a)得到1 2 3 4 7 6

*sample*
抽样,如:
sample(1:3,10,replace = FALSE) #无放回抽10个,默认为无放回
sample(data$ID,5,replace = TRUE) #有放回从某向量里抽5个
sample(c("a","b","c"),10,replace = TRUE,prob = c(0.1,0.5,0.4)) #概率抽样,依次对应

*rerun*

重复操作,如:rerun(10,rnorm(5)) #生成一个列表,重复执行10次rnorm(5)命令,各次结果不相同

 

duplicated:

接收一个向量,每种元素第一次返回值F,之后每次返回T,形成一个新向量

如:

【去重操作】

df %>%
  filter(!duplicated(df$grammer))

 

everything:

配合select使用,把变量提到最前

如:

flights %>%
  select(dep_time,everything())

 

head 和 tail

显示最前、最后几行。如:head(df,10)

 

去掉最后一行数据:df[-nrow(df),]

添加一行数据:

row <- tibble(
  "grammer" = c("Perl"),
  "popularity" = c(6.6)
) # 需要和列的位置对应
df <- rbind(df,row)

 

rbind和cbind

将若干行或若干列按元素顺序拼接

 

df %>% filter(!(df$col1 %in% df$col2)):筛选出不同时在第二列的第一列的数据对应观测值

 

将第一列所有大于10的值都改成正无穷

df %>%
  mutate(
    col1 = ifelse(df$col1 > 10,Inf,df$col1)
  )

 

取消科学计数法:如:round(df,10) #10表示保留小数点后10位

 

提取第五排:df  %>% filter(row_number()==5)

 

按行翻转:

df %>%
  arrange(desc(row_number()))

 

正则表达式抓单词去掉句点:[^ |\\.]

找两个向量的交集:intersect

抓两个向量的差集:setdiff

如:setdiff(x,y)得到在x中而不在y中的元素

 

用正则表达式处理数据框:

竖筛:

flights %>%
  select(names(flights) %>% str_subset(".*time$"))

横筛:

flights %>%
  filter(str_detect(flights$dest,"M"))

 

Guess you like

Origin blog.csdn.net/weixin_51674826/article/details/117535329