数据清洗往往是我们在数据分析过程中最初的一步也是最重要的一步;R语言是我们常用来处理数据的软件,然而在这个过程中往往会遇到很多问题,下面就是一个在随访资料的生存分析过程中遇到过的一个小问题,可也是很多人可能会遇到过的问题,因为本人寻遍了整个百度未能找到确实可行的解决办法,下面将问题和解决方案记录在下面,希望对大家有一点帮助,如果有其他问题也欢迎大家和我一起进行探讨。

本人收集到了很多个关于肿瘤患者生存情况的数据,其中包含了多个时间变量,如果这些时间包含缺失值或者是字符时,在用R语言openxlsx:: read.xlsx()读入数据后,所有的时间变量都变成了字符型变量,例子如下:

df<-openxlsx::read.xlsx("C:/Users/Desktop/df.xlsx")
class(df$time1)

如果在后续的分析用到这三个变量的话就需要将们转化成时间型变量;这时候就需要用到as.Date()函数,但是在转化过程中往往会遇到如下的报错提示(即使是将所有的字符串替换成NA):

df$time1<-as.Date(df$time1)

Error in charToDate(x) : 字符串的格式不够标准明确

1.在采用Openxlsx包中的read.xlsx()函数读入数据时,设置参数read.xlsx("C:/Users/Desktop/df.xlsx",1,na.strings = "", detectDates = FALSE )可以解决,但是在后续的数据处理中可能还会包另外一个错误(特别是在写循环进行数据插补时)。

Error in as.Date.numeric(value) : 'origin'一定得给值

2.最有效的办法

①先将字符串进行替换

for(x in c(1:dim(df)[2])){
  df[,x]<-str_replace_all(df[,x],"时间错误|NA|无时间记录","")
}                                #替换字符串为“”

②写循环先将变量转换成数值型变量,再将变量转换成日期变量即可(变量少的话也可以逐个变量的转换),代码如下:

for(x in c(1:3)){
  df[,x]<-as.Date(as.numeric(df[,x]),origin = "1899-12-30")

注:如果数据集中无字符串需处理的话,用方法1比较简单直接

R语言是我们常用来处理数据的软件,然而在这个过程中往往会遇到很多问题,下面就是一个在随访资料的生存分析过程中遇到过的一个小问题,可也是很多人可能会遇到过的问题,因为本人寻遍了整个百度未能找到确实可行的解决办法,下面将问题和解决方案记录在下面,希望对大家有一点帮助,如果有其他问题也欢迎大家和我一起进行探讨。1.在采用Openxlsx包中的read.xlsx()函数读入数据时,设置参数read.xlsx("C:/Users/Desktop/df.xlsx",1,na.strings = "",
R语言日期处理的一些问题 使用R语言的很多都知道,其对于日期处理有时候会很麻烦,这里总结一些列子,希望有所帮助 注:这里主要描述日期识别,其他的计算参考下文中的R包,此处不细述 基础日期函数 as.Date("2012-12-14") #[1] "2012-12-14" as.Date("2012/12/14") [1] "2012-12-14" as.Date("2012\12\14") # Error in charToDate(x) : 字符串格式不够标准明确 as.Date("2012.12
num1 = int(input(请输入起始序数n1:)) num2 = int(input(请输入结束序数n2:)) fuc = input(请输入以n为变量的通项公式(eg:2*n+1):) list_fuc = [] if ^ in fuc: ^ = ** #问题处 for n in range(num1,num2+1): list_fuc.append(eval(fuc)) print(该数列的和为:+str(sum(list_fuc))) File C:\U
去日期解析器 解析许多日期字符串而无需事先知道格式。 使用扫描仪读取字节并使用状态机查找格式。 比基于散弹枪的解析方法快得多。 有关性能比较,请参见 。 MM / DD / YYYY与DD / MM / YYYY现在使用mm / dd / yyyy。如果这是不希望的行为,请使用ParseStrict ,它对不明确的日期字符串将失败。 时区服务器配置的位置会影响结果! 请参阅示例或 ,最后一段在这里 。 // Normal parse. Equivalent Timezone rules as time.Parse() t , err := dateparse . ParseAny ( "3/1/2014" ) // Parse Strict, error on ambigous mm/dd vs dd/mm dates t , err := dateparse . ParseStr
操作系统:Ubuntu 16.04 问题描述: 在终端启动gedit命令或者vscode命令报错:gedit: symbol lookup error: /home/chujie/anaconda3/lib/libgobject-2.0.so.0: undefined symbol: g_date_copy 问题分析: 导致错误的原因应该是gedit依赖libgobject-2.0.so库,而/home/chujie/anaconda3/lib下的这个库版本不对,没有对应的符号。 因此解决的思路是从系统中找到正确的依赖库。 查找系统中存在的libgobject库: locate libgob
CSDN-Ada助手: 非常棒的技术博客!感谢您与我们分享您的经验和技巧。我们期待着您的下一篇博客。为了进一步扩展您的技术领域,我们建议您写一篇关于R语言中的聚类分析和分类模型的博客,探究其在实际数据分析中的应用。期待着您的精彩分享! 为了方便博主创作,提高生产力,CSDN上线了AI写作助手功能,就在创作编辑器右侧哦~(https://mp.csdn.net/edit?utm_source=blog_comment_recall )诚邀您来加入测评,到此(https://activity.csdn.net/creatActivity?id=10450&utm_source=blog_comment_recall)发布测评文章即可获得「话题勋章」,同时还有机会拿定制奖牌。 R语言 总体均数的95%置信区间、几何均数(GMT)及其置信区间的计算 GYSJYUGI: 突然发现大样本的话不应该用qt应该用qnorm R语言 总体均数的95%置信区间、几何均数(GMT)及其置信区间的计算 beimeiyouyu: 请问正确的几何均数CI应该怎么算呀? R语言 总体均数的95%置信区间、几何均数(GMT)及其置信区间的计算 m0_61426582: 几何均数的置信区间计算错了吧