1、字段抽取
字段截取函数:substr(x,start,stop)
[python] view plain copy
tel <- '18922254812';
#运营商
band <- substr(tel, 1, 3)
#地区
area <- substr(tel, 4, 7)
#号码段
num <- substr(tel, 8, 11)
tels <- read.csv('1.csv');
#运营商
bands <- substr(tels[,1], 1, 3)
#地区
areas <- substr(tels[,1], 4, 7)
#号码段
nums <- substr(tels[,1], 8, 11)
new_tels <- data.frame(tels, bands, areas, nums)
2、字段合并
字段合并,是指将同一个数据框中的不同列,进行合并,形成新的列
字符分割函数:paste(x1,x2,...,sep=" ")
[python] view plain copy
data <- read.table('1.csv', sep=' ')
p_data <- paste(data[,1], data[,2], data[,3], sep="")
newData <- data.frame(data, p_data)
3、记录合并
将两个结构相同的数据框,合并成一个数据框
记录合并函数:rbind(dataFrame1,dataFrame2,...)
[python] view plain copy
data_1_1 <- read.table('1.csv', sep='|', header=TRUE, fileEncoding='utf-8');
data_1_2 <- read.table('2.csv', sep='|', header=TRUE, fileEncoding='utf-8');
data_1_3 <- read.table('3.csv', sep='|', header=TRUE, fileEncoding='utf-8');
data <- rbind(data_1_1, data_1_2, data_1_3)
fix(data)
4、字段匹配
将不同结构的数据框,按照一定的条件进行合并(两表合并)
字段匹配函数:merge(x,y,by.x,by.y)
[python] view plain copy
items <- read.table('1.csv', sep='|', header=FALSE, fileEncoding='utf-8')
fix(items)
prices <- read.table('2.csv', sep='|', header=FALSE, fileEncoding='utf-8')
fix(prices)
itemPrices <- merge(prices, items, by.x=c('V1'), by.y=c('V1'))
fix(itemPrices)
Join( )也可以用来实现两表连接:
[python] view plain copy
inner_join(t1,t2,by=c("列名1","列名2"))
#功能等于:
merge(t1,t2,by.x="列名",by.y="列名")
#还有其他的join方式:
full_join 全连接
left_join 左连接
right_join 右连接
5、字符串处理高级技巧
[python] view plain copy
x <- c("Hellow", "World", "!")
#一、字符串长度
nchar(x)
#[1] 6 5 1
length(x)
#[1] 3
#二、字符串替换
chartr("HW", "ZX", x)
#[1] "Zellow" "Xorld" "!"
#三、字符串的大小写转换
tolower(x)
#[1] "hellow" "world" "!"
toupper(x)
#[1] "HELLOW" "WORLD" "!"
#四、字符串的拼接
paste("CK", 1:6, sep="")
#[1] "CK1" "CK2" "CK3" "CK4" "CK5" "CK6"
x <- list(a="aaa", b="bbb", c="ccc")
y <- list(d=1, e=2)
paste(x, y, sep="-")
#较短的向量被循环使用
#[1] "aaa-1" "bbb-2" "ccc-1"
#五、字符串切割
text <- "Hello word!"
strsplit(text, ' ')
#[[1]]
#[1] "Hello" "word!"
class(strsplit(text, ' '))
#[1] "list"
#有一种情况很特殊:
#如果split参数的字符长度为0,得到的结果就是一个个的字符:
strsplit(text, '')
#[[1]]
# [1] "H" "e" "l" "l" "o" " " "w" "o" "r" "d" "!"
#一个首字符大写的综合案例
capStringAll <- function(x)
{
s <- strsplit(x, " ")[[1]]
paste(toupper(substring(s, 1, 1)), substring(s, 2),
sep = "", collapse = " ")
}
capStringAll("hello word")
#[1] "Hello Word"
capString <- function(x)
{
s <- strsplit(x, " ")[[1]]
s[1] <- paste(toupper(substring(s[1], 1, 1)), substring(s[1], 2), sep = "", collapse = " ");
paste(s, sep = "", collapse = " ")
}
capString("hello word")
#[1] "Hello word"
#六、字符串的查找
#grep, grepl: 返回pattern的匹配项。
#前者返回匹配项目的下标;后者返回逻辑值,x长度有多少,就返回多少个逻辑值。
#如果添加一个value参数,赋值为T,则返回匹配项的值。
text <- c("Company", "Coworker", "Cooperation", "Can")
grep("o", text)
#[1] 1 2 3
grepl("o", text)
#[1] TRUE TRUE TRUE FALSE
grep("o", text, value = T)
#[1] "Company" "Coworker" "Cooperation"
#七、字符串的替换
#sub, gsub: 返回用replacement替换匹配项之后的x(字符型向量)。
#前者只替换向量中每个元素的第一个匹配值,后者替换所有匹配值。
#注意以下两个例子中"o"的替换方式。
sub("o", "xx", text)
#[1] "Cxxmpany" "Cxxworker" "Cxxoperation" "Can"
gsub("o", "xx", text)
#[1] "Cxxmpany" "Cxxwxxrker" "Cxxxxperatixxn" "Can"
#八、字符串的截取
x <- "123456789"
substr(x, 2, 4)
#[1] "234"
substring(x, c(2,4), c(4,5,8))
#[1] "234" "45" "2345678"
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的需求持续飙升。世界经济论坛发布的《未来就业报告》, ...
2025-03-28你有没有遇到过这样的情况?流量进来了,转化率却不高,辛辛苦苦拉来的用户,最后大部分都悄无声息地离开了,这时候漏斗分析就非 ...
2025-03-27TensorFlow Datasets(TFDS)是一个用于下载、管理和预处理机器学习数据集的库。它提供了易于使用的API,允许用户从现有集合中 ...
2025-03-26"不谋全局者,不足谋一域。"在数据驱动的商业时代,战略级数据分析能力已成为职场核心竞争力。《CDA二级教材:商业策略数据分析 ...
2025-03-26当你在某宝刷到【猜你喜欢】时,当抖音精准推来你的梦中情猫时,当美团外卖弹窗刚好是你想吃的火锅店…… 恭喜你,你正在被用户 ...
2025-03-26当面试官问起随机森林时,他到底在考察什么? ""请解释随机森林的原理""——这是数据分析岗位面试中的经典问题。但你可能不知道 ...
2025-03-25在数字化浪潮席卷的当下,数据俨然成为企业的命脉,贯穿于业务运作的各个环节。从线上到线下,从平台的交易数据,到门店的运营 ...
2025-03-25在互联网和移动应用领域,DAU(日活跃用户数)是一个耳熟能详的指标。无论是产品经理、运营,还是数据分析师,DAU都是衡量产品 ...
2025-03-24ABtest做的好,产品优化效果差不了!可见ABtest在评估优化策略的效果方面地位还是很高的,那么如何在业务中应用ABtest? 结合企业 ...
2025-03-21在企业数据分析中,指标体系是至关重要的工具。不仅帮助企业统一数据标准、提升数据质量,还能为业务决策提供有力支持。本文将围 ...
2025-03-20解锁数据分析师高薪密码,CDA 脱产就业班助你逆袭! 在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的 ...
2025-03-19在 MySQL 数据库中,查询一张表但是不包含某个字段可以通过以下两种方法实现:使用 SELECT 子句以明确指定想要的字段,或者使 ...
2025-03-17在当今数字化时代,数据成为企业发展的关键驱动力,而用户画像作为数据分析的重要成果,改变了企业理解用户、开展业务的方式。无 ...
2025-03-172025年是智能体(AI Agent)的元年,大模型和智能体的发展比较迅猛。感觉年初的deepseek刚火没多久,这几天Manus又成为媒体头条 ...
2025-03-14以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-13以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda.cn/go ...
2025-03-12以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-11随着数字化转型的加速,企业积累了海量数据,如何从这些数据中挖掘有价值的信息,成为企业提升竞争力的关键。CDA认证考试体系应 ...
2025-03-10推荐学习书籍 《CDA一级教材》在线电子版正式上线CDA网校,为你提供系统、实用、前沿的学习资源,助你轻松迈入数据分析的大门! ...
2025-03-07在数据驱动决策的时代,掌握多样的数据分析方法,就如同拥有了开启宝藏的多把钥匙,能帮助我们从海量数据中挖掘出关键信息,本 ...
2025-03-06