我有一个数据框,其中每一列对应变量,每一行对应数值类别,例如0、1或2。
df <- data.frame(TKI=c(1,1,2,0,1),
Chemo=c(1,2,2,0,1),
Radio=c(1,1,2,0,1),
EGFR=c(1,2,2,0,1),
ALK=c(1,1,2,0,1))
df
TKI Chemo Radio EGFR ALK
1 1 1 1 1 1
2 1 2 1 2 1
3 2 2 2 2 2
4 0 0 0 0 0
5 1 1 1 1 1
我想基于列索引将每个值转换为double。例如,上述表将转换为以下形式:
1.1 2.1 3.1 4.1 5.1
1.1 2.2 3.1 4.2 5.1
1.2 2.2 3.2 4.2 5.2
1.0 2.0 3.0 4.0 5.0
1.1 2.1 3.1 4.1 5.1
我还想获取列及其索引的列表,例如:
1 - TKI
2 - Chemo
3 - Radio
4 - EGFR
5 - ALK
我该如何转换?
感谢您的时间和帮助!
您可以使用col
获取列索引并将数据帧除以10以创建一个十进制值,然后将两个数字相加。
col(df) + df/10
# TKI Chemo Radio EGFR ALK
#1 1.1 2.1 3.1 4.1 5.1
#2 1.1 2.2 3.1 4.2 5.1
#3 1.2 2.2 3.2 4.2 5.2
#4 1.0 2.0 3.0 4.0 5.0
#5 1.1 2.1 3.1 4.1 5.1
要获取列名及其位置,您可以执行以下操作:
ref_df <- data.frame(index = seq_along(df),
names = names(df))
# index names
#1 1 TKI
#2 2 Chemo
#3 3 Radio
#4 4 EGFR
#5 5 ALK
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句