janitor 是 R 语言中一个用于数据清理和格式化的实用包。它提供了一系列函数,可以帮助您轻松完成数据清洗过程中一些讨厌的步骤,比如:清理数据框列名、格式化数字和日期、创建和格式化频率表等
清理列名称
基本大小写:
snake_case: 所有小写字母,用下划线分隔,示例:my_variable
, data_frame
。
small_camel: 首字母小写,后续单词首字母大写,示例:myVariable
, dataFrame
。
big_camel: 每个单词的首字母都大写,示例:MyVariable
, DataFrame
screaming_snake: 所有大写字母,用下划线分隔,示例:MY_VARIABLE
, DATA_FRAME
混合大小写:
parsed: 大小写取决于上下文或使用的解析器。
mixed: 包含不同大小写约定的组合,示例:thisIsAMixedCaseString
lower_upper: 首字母小写,然后每个后续单词的首字母大写,示例:thisIsALowerUpperString
upper_lower: 首字母大写,然后每个后续单词的小写,示例:ThisIsAnUpperLowerString
其他:
swap: 交换每个字母的大小写(小写变大写,反之亦然)。
all_caps: 所有大写字母。
lower_camel: 首字母小写,后续单词首字母大写。
upper_camel: 每个单词的首字母大写。
internal_parsing: 大小写取决于内部规则或约定。
none: 不应用特定的大小写。
flip: 翻转每个字母的大小写(大写变小写,反之亦然)。
sentence: 将第一个单词和所有专有名词的首字母大写,其余字母小写。
random: 随机分配每个字母的大小写(大写或小写)。
title: 将每个单词的首字母大写,其余字母小写。
代码
library(janitor)
test_df <- as.data.frame(matrix(ncol = 6))
names(test_df) <- c(
"firstName", "ábc@!*", "% successful (2009)",
"REPEAT VALUE", "REPEAT VALUE", ""
)
test_df %>%
clean_names()
first_name abc percent_successful_2009 repeat_value repeat_value_2 x
1 NA NA NA NA NA NA
代码
test_df %>%
clean_names(case = "small_camel")
firstName abc percentSuccessful2009 repeatValue repeatValue_2 x
1 NA NA NA NA NA NA
代码
test_df %>%
clean_names(case = "big_camel")
FirstName Abc PercentSuccessful2009 RepeatValue RepeatValue_2 X
1 NA NA NA NA NA NA
日期时间处理
excel数字转为日期时间
代码
excel_numeric_to_date(41103)
include_time
控制是否小数转为时间
代码
excel_numeric_to_date(41103.01)
代码
excel_numeric_to_date(41103.01, include_time = TRUE)
[1] "2012-07-13 00:14:24 CST"
快速统计
tabyl
可以直接统计数量及占比
代码
library(dplyr)
starwars %>% tabyl(eye_color)
eye_color n percent
black 10 0.11494253
blue 19 0.21839080
blue-gray 1 0.01149425
brown 21 0.24137931
dark 1 0.01149425
gold 1 0.01149425
green, yellow 1 0.01149425
hazel 3 0.03448276
orange 8 0.09195402
pink 1 0.01149425
red 5 0.05747126
red, blue 1 0.01149425
unknown 3 0.03448276
white 1 0.01149425
yellow 11 0.12643678
代码
starwars %>%
tabyl(eye_color) %>%
adorn_totals("row", name = "总计") %>%
adorn_pct_formatting()
eye_color n percent
black 10 11.5%
blue 19 21.8%
blue-gray 1 1.1%
brown 21 24.1%
dark 1 1.1%
gold 1 1.1%
green, yellow 1 1.1%
hazel 3 3.4%
orange 8 9.2%
pink 1 1.1%
red 5 5.7%
red, blue 1 1.1%
unknown 3 3.4%
white 1 1.1%
yellow 11 12.6%
总计 87 100.0%
回到顶部