读入在桌面的文件:
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"))