长春设计网站,简单手工,centos打开wordpress,黄冈建设局网站首页咱们临床研究中#xff0c;拿到数据后首先要对数据进行清洗#xff0c;把数据变成咱们想要的格式#xff0c;才能进行下一步分析#xff0c;其中数据中的字符转成数字是个重要的内容#xff0c;因为字符中常含有特殊符号#xff0c;不利于分析#xff0c;转成数字后才能…咱们临床研究中拿到数据后首先要对数据进行清洗把数据变成咱们想要的格式才能进行下一步分析其中数据中的字符转成数字是个重要的内容因为字符中常含有特殊符号不利于分析转成数字后才能更好进行分析。 今天来总结一下常见的几种字符转数字的方法建议收藏以后需要用时找得到。咱们先生成一个数据来示例一下。
library(tidyr)# 创建原始宽格式的数据框
data - data.frame(id c(1:8),group c(0, 0, 0, 0, 1, 1, 1, 1),w0 c(0.35, 0.77, 0.48, 0.63, 0.45, 0.56, 1.08, 0.55),w1 c(1.01, 1.32, 1.18, 1.42, 0.59, 0.86, 1.44, 1.20),w2 c(1.47, 1.60, 1.65, 1.88, 0.64, 1.37, 1.93, 1.68),w4 c(2.46, 2.54, 2.86, 3.13, 0.99, 2.04, 2.63, 2.87)
)# 将数据框从宽格式转换为长格式
df_long - data %%pivot_longer(cols c(w0, w1, w2, w4), # 需要转换的列名names_to time, # 新生成的列名用来存储原列名values_to value # 新生成的列名用来存储原数值)好的数据生成了我们看到到time这一列的变量是w0,w1,w2,w4的字符变量咱们想要把它转成数字0124应该怎么转换呢最常见的时候是想起ifelse()函数来一个个的转换但是这样效率太低了介绍几种快速转换的。
dplyr包
library(dplyr)
df_long2 - df_long %%mutate(time case_when(time w0 ~ 0,time w1 ~ 1,time w2 ~ 2,time w4 ~ 4,TRUE ~ as.numeric(time) # 这一行确保如果未来有其他值它们不会变成NA))这样就轻松转换好了。
也是继续使用dplyr包recode()函数咱们注意一下这两个函数的判断方法有点不一样。等号前面不能有空格。
library(dplyr)
df_long3 - df_long %%mutate(time recode(time, w0 0, w1 1, w2 2, w4 4))3. 使用基础R中的 factor() 和 as.numeric()这个的好处是不用在额外使用R包但是你必须一个个的指定。也要对基础语法比较掌握。
df_long3$time2 - as.numeric(as.character(factor(df_long$time, levels c(w0, w1, w2, w4),labels c(0, 1, 2, 4))))stringr包来对数字提取因为咱们是字符后面的数字部分所以可以用这样的方法并不适合所有情况。
library(stringr)
df_long4 - df_long %%mutate(time as.numeric(str_extract(time, \\d)))使用dplyr包的if_else函数注意一下这个和基础的ifelse()函数是不一样的
df_long5- df_long %%mutate(time if_else(time w0, 0,if_else(time w1, 1,if_else(time w2, 2,if_else(time w4, 4, NA_real_)))))6. 因为它是位置索引所以索引回来的是位置因此有个小缺点4变成了3不能完全满意。为什么我还要说呢使用 match() 函数,这个函数主要是用来索引字符匹配的。明白它的用法在很多地方都能有很大的用途。
df_long6 - df_long %%mutate(time match(time, c(w0, w1, w2, w4)) - 1) # 因为索引从1开始所以减去1写在新年来临之际公众号4年来有无数的铁粉默默支持给我提了很多好的意见受益良多在此默默感谢。 新的一年公众号会将对纵向分析进行一些介绍包括混合效应模型、gee模型、gamm模型等。也会继续复现一些关于charls的纵向分析文章。 感谢大家对我的scitable包的支持有些粉丝还不明白它能做什么最基础的功能就是基线表、单因素和多因素分析多模型分析阈值效应分析亚组分析rcs分析。还可以进行数据挖掘和交互效应深层次数据挖掘。 目前还有很多功能待写比如一键相加交互模型函数、gamm模型函数、gam模型的阈值函数、gee模型的曲线拟合和阈值函数新版的亚组森林图相信不会让你们失望的。
最后祝各位粉丝新年快乐合家美满连发连中。