R语言清洗与处理数据常用代码段

去掉数据框df的某一列:

# 删除不必要的变量
data$unnecessary_var <- NULL

 选择需要的列进行读入数据框:

# 选择需要的列
selected_cols <- c("col1", "col2", "col3")
data <- fread("data.csv", select = selected_cols)
  1. 逐块读取数据:如果数据集太大无法一次性读取到内存中,可以尝试使用逐块读取的方式,将数据分割成较小的块进行处理。可以使用data.table包中的fread函数的nrows参数来指定每次读取的行数。
library(data.table)

chunk_size <- 100000
data <- fread("data.csv", nrows = chunk_size)
while (!feof("data.csv")) {
  next_chunk <- fread("data.csv", nrows = chunk_size)
  data <- rbind(data, next_chunk)
}
  1. 使用其他工具:可以考虑使用其他工具来读取和处理数据。例如,可以尝试使用readr包的read_csv函数,它使用了更少的内存。
library(readr)

data <- read_csv("data.csv")

 若时间为标准的date类可用year()、month()等函数提取相应数字;若时间是字符串类型表示则用下列方式截取:

str_extract("Hello, world!", "\\w+") # 提取所有的单词
str_extract("2021-01-01", "\\d{4}") # 提取日期中的年份

 各种编码之间的相互转换

除了CP936(简体中文编码)和UTF-8(通用字符编码)之外,常见的字符串类型还包括以下几种:

  1. CP1252(西欧语言编码):它是Windows默认的字符编码,适用于包含英语、法语、德语等西欧语言的文本。CP1252编码支持更多的特殊字符和符号,比如©、®、€等。

  2. GBK(国标码):它是GB2312(汉字标准码)的扩展,适用于中文文本。GBK编码支持更多的汉字字符,覆盖了简体和繁体中文。

  3. Big5(繁体中文编码):它主要用于香港、台湾和一些海外华人地区的繁体中文文本。Big5编码使用更多的位表示繁体中文字符。

  4. ISO-8859-1(拉丁字母编码):也被称为Latin-1,它是ISO推荐的ASCII字符扩展编码,适用于大多数欧洲语言。ISO-8859-1编码容纳了西欧语言的大部分字符。

这些字符编码有各自的特点和适用范围,选择适当的字符编码取决于文本内容和目标使用环境。对于国际化或多语言支持的应用,UTF-8是推荐的编码方式,因为它可以兼容多种语言和字符集。

 # 将UTF-8编码的字符串转换为GBK编码

utf8_str <- "你好,世界" gbk_str <- iconv(utf8_str, from = "UTF-8", to = "GBK") print(gbk_str) # 输出: 涓浗锛屽叡浜�

# 将GBK编码的字符串转换为UTF-8编码 gbk_str <- "涓浗锛屽叡浜�"

utf8_str <- iconv(gbk_str, from = "GBK", to = "UTF-8") print(utf8_str) # 输出:你好,世界

# 将CP936编码的字符串转换为UTF-8编码 cp936_str <- "你好,世界"

utf8_str <- iconv(cp936_str, from = "CP936", to = "UTF-8") print(utf8_str) # 输出:你好,世界

# 将UTF-8编码的字符串转换为CP936编码 utf8_str <- "你好,世界"

cp936_str <- iconv(utf8_str, from = "UTF-8", to = "CP936") print(cp936_str) # 输出:浣犲ソ锛屽師濮�


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值