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