臨床データベースマイニングシリーズ3-シードデータベースをクリーンアップするためにR言語を使用することを教えます

ここに画像の説明を挿入
SEERデータベースからデータをダウンロードした後、迷う人もいます。これは、データがクリーンアップおよびソートされておらず、統計ソフトウェアで認識される形式に変換できず、分析できないためです。今日は、R言語を使用してシードデータベースをクリーンアップし、データを使用できるようにする方法を説明します。
まず、必要なRパッケージをインポートします。これには、foreign、car、stringrが必要であり、最初にダウンロードする必要があります。
ここに画像の説明を挿入
次に、ダウンロードしたデータをRにインポートしました。200,000を超えるデータがあり、手動で変更することはできません。

be<-read.csv("E:/r/test/seer4.csv",sep=',',header=TRUE)

ここに画像の説明を挿入
データの名前と形式を見てください。変数
head(be)
names(be)
ここに画像の説明を挿入
ここに画像の説明を挿入
が乱雑に感じられます。一部の名前は非常に長いので、名前をすべて変更してください。

colnames(be)<-c("sex","time","rezult","rezult1","status","race","Subtype","nodes","Lymph.Invasion",
                "tumor.size","extension","lymph.nodes","age","ajcc")#数据太长,重新命名

データセットをもう一度確認してみましょう。今回はさらに
ここに画像の説明を挿入
新鮮です。Lymph.Invasionにはデータが欠落しているため、まったく分析できず、削除することしかできない、合計14の変数があることがわかりました。これはのフラストレーションです。公開データベース。

be<-be[,-9]#删掉第9列Lymph.Invasion,因为都是缺失的数据

ここに画像の説明を挿入
データ内の多くの変数は文字列であり、要件を満たしていないため、数値に変換する必要があります

be$sex<-ifelse(be$sex=="Female",1,ifelse(be$sex=="Male",2,NA))#性别转换成1和2,缺失的使用NA表示,其他的相同
be$rezult1 <-ifelse(be$rezult1 =="Alive or dead due to cancer",1,
                    ifelse(be$rezult1 =="Dead (attributable to causes other than this cancer dx)",
                           2,NA))
be$status<-ifelse(be$status=="Alive",0,ifelse(be$status=="Dead",1,NA))
be$race<-ifelse(be$race=="White",1,ifelse(be$race=="Black",2,3))
be$Subtype<-recode(be$Subtype,"'HR-/HER2- (Triple Negative)'=1;
       'HR-/HER2+ (HER2 enriched)'=2;'HR+/HER2- (Luminal A)'=3;
       'HR+/HER2+ (Luminal B)'=4;else=NA")#这里是4个分类变量,使用ifelse函数套叠胎麻烦,改用car函数
be$nodes[be$nodes=="Blank(s)"]=NA#让数据中的Blank(s)变为缺失值,下面同理
be$tumor.size[be$tumor.size=="Blank(s)"]=NA
be$extension[be$extension=="Blank(s)"]=NA
be$lymph.nodes[be$lymph.nodes=="Blank(s)"]=NA
be$age<-str_extract(be$age, "\\d+")#把年龄里面的数字提取出来
be$ajcc[be$ajcc=="Blank(s)"]=NA

ここに画像の説明を挿入
OK、変換はほぼ完了しました。見てみましょう。Rezultは役に立たないです。彼を無視して後で削除します。必要なのはrezult1です
ここに画像の説明を挿入
。Ajcc。まだ使用する必要がないため、変換しませんでした。交互作用効果の探索について話すとき分析中にそれについて話しましょう。最初に彼を無視します。強迫性障害がある場合は、上記のコードに従って変換することもできます
。OK、これで完了ですか?いいえ、生成されていない別の重要な変数があります。それは競争リスクの結果です。
今すぐ生成しましょう。

be$status1<-ifelse(be$status==0,0,ifelse(be$rezult1==1,1,2))

最後にデータが出てきて、
ここに画像の説明を挿入
1.csvとして出力します

write.csv(be,file = "1.csv")

最後に、1.csvを開いて整理します。これは、公開するデータです。200,000を
ここに画像の説明を挿入
超えるデータです。中国語のコアまたは低スコアのSCIを送信することは、プレイするのと同じように簡単ではありません。
データマイニングプロセスについて詳しく知りたい場合は、私の科学研究チュートリアルに注意してください。
よりエキサイティングな記事については、公開アカウントに注意してください:ゼロベースの研究
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/dege857/article/details/112795092