r - R:根据列索引将数据帧值从整数转换为双精度
问题描述
我有一个数据框,其中每一列对应于变量,每一行对应于数字类别,例如 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.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
推荐阅读
- ios - 如何使一组视图可以与 tableview 一起垂直滚动?
- ios - iOS 图表子类 Markerview 使用 Swift 总是在“xxx-Swift.h”中构建错误
- laravel - 如何在laravel的存储文件夹中编辑文件夹名称
- python - Heroku:使用python http.server(不是flask / django)时出现“应用程序错误”
- javascript - CSS/JS 延迟加载背景图片(白色闪烁)
- regex - PowerShell 仅匹配首次出现的字符串
- c# - C# WPF - 如何将垂直滚动查看器放置在水平滚动查看器中
- python - mypy "'owclient' 的导入被忽略"
- r - 如何解决此错误以限制用户在 R 中输入的数据?
- php - 使用 Adobe Reader 在 Android 上的 Firefox 上,TCPDF 生成的 PDF 导致下载错误