使用R中的选项卡txt列表更改数据框中的列位置

发布于 2024-12-08 08:37:08 字数 836 浏览 0 评论 0原文

也许这是一个简单的问题,但我正在尝试更改 R 中数据框中的列的位置。我已经得到了这个数据框,

TargetID   1065197   1005204     97610   1011789    101075   1002206
cg00000029 0.4192448 0.4177188 0.4797760 0.4214448 0.5500357 0.5535228
cg00000108 0.9191919 0.9358317 0.9428818 0.9397804 0.9293985 0.9495835
cg00000109 0.8935743 0.9157031 0.8731022 0.8734130 0.9226335 0.8980497
cg00000165 0.1387203 0.1699675 0.2031603 0.1683728 0.1822674 0.1623122
cg00000236 0.7502784 0.7324294 0.7895553 0.7096000 0.7878484 0.7747281
cg00000289 0.5698198 0.5864769 0.6527094 0.5058923 0.6033058 0.6524675

并且我想使用这个列表文本文件重新排列位置,该文​​件指示每对列按顺序排列

101075 1005204
97610 1002206
1011789 1065197

所以结果一定是这样的

colnames(reordered_data_frame)
TargetID 101075 1005204 97610 1002206 1011789 1065197

有什么想法吗?

Maybe this is a simple question, but I'm trying to change the position of columns in a data frame in R. I've got this data frame

TargetID   1065197   1005204     97610   1011789    101075   1002206
cg00000029 0.4192448 0.4177188 0.4797760 0.4214448 0.5500357 0.5535228
cg00000108 0.9191919 0.9358317 0.9428818 0.9397804 0.9293985 0.9495835
cg00000109 0.8935743 0.9157031 0.8731022 0.8734130 0.9226335 0.8980497
cg00000165 0.1387203 0.1699675 0.2031603 0.1683728 0.1822674 0.1623122
cg00000236 0.7502784 0.7324294 0.7895553 0.7096000 0.7878484 0.7747281
cg00000289 0.5698198 0.5864769 0.6527094 0.5058923 0.6033058 0.6524675

And I want to rearrange the positions using this tabulated text file, which indicates every pair of columns in order

101075 1005204
97610 1002206
1011789 1065197

So the result must be something like this

colnames(reordered_data_frame)
TargetID 101075 1005204 97610 1002206 1011789 1065197

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

懒的傷心 2024-12-15 08:37:08

如果您有一个按顺序排列的列名称向量,请说:

colorder=c(101075, 1005204, 97610, 1002206,1011789 ,1065197)

您可以使用以下命令对列重新排序(假设您的数据帧名为 dat):

newDf <- dat[, c("TargetID", colorder)]

通常,您需要调用 as.character()在 colorder 上(因为列名称是数字),但是当我们连接“TargetID”文本时,向量 c("TargetID", colorder) 会转换为字符。但一般来说,使用数字作为列名并不是最好的主意。

If you have a vector of column names in order, say:

colorder=c(101075, 1005204, 97610, 1002206,1011789 ,1065197)

You can re-order your columns using (assuming your dataframe is named dat):

newDf <- dat[, c("TargetID", colorder)]

Normally, you'd need to call as.character() on colorder (since the column names are numbers), but when we concatenate the "TargetID" text, the vector c("TargetID", colorder) is converted to character. In general, though, it isn't the best idea to use numerics as column names.

一直在等你来 2024-12-15 08:37:08

从名为“columns.txt”的文本文件中读取列名称

cols <- scan("columns.txt","character")

重新排列数据

redf <- dat[,c("TargetID",cols)]

Read columns names from text file named "columns.txt

cols <- scan("columns.txt","character")

Rearrange data

redf <- dat[,c("TargetID",cols)]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文