R:基于列索引将数据帧值从整数转换为双精度

R:基于列索引将数据帧值从整数转换为双精度,r,dataframe,R,Dataframe,我有一个数据框,其中每列对应变量,每行对应数字类别,例如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

我有一个数据框,其中每列对应变量,每行对应数字类别,例如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
我还想获得列及其索引的列表,例如:

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
ref\u df
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