如何在R或excel中将不同的组从列转换到行
我找了几个答案,但似乎没有人能回答我的问题 我的数据是这样的(2列,2组,组“1”和组“2”)如何在R或excel中将不同的组从列转换到行,r,excel,transpose,R,Excel,Transpose,我找了几个答案,但似乎没有人能回答我的问题 我的数据是这样的(2列,2组,组“1”和组“2”) 110 120 150 240 230 260 我想把它从一列转置到另一行 结果将如下所示 11 102050 2 2 40 30 60 因为我有很多小组,我不能一个一个地手动完成。谁能帮帮我吗?多谢各位 谢谢大家,因为所有的组都有相同的长度(灵感来自Floris的评论),实际上我可以简单地使用matrix来解决这个问题 x=read.table(header=F,text="10 2
- 110
- 120
- 150
- 240
- 230
- 260
- 11
- 102050
- 2 2
- 40 30 60
x=read.table(header=F,text="10 20 50 40 30 60")
matrix(x,nrow=2,byrow=T)
xx如果您知道如何使用VBA,那么编写一个简短的sub()来实现这一点是非常简单的。我正在硬编码地址-你可以想出如何移动它。我假设在调用此宏时,您的数据在活动工作表上,并且您希望副本显示在原始数据的右侧(在A列和B列中,从第2行开始-为您提供上面标签的空间)。我还要假设你们的小组编号为1,2,3。。。你不需要复制它们的值。然后代码如下所示(按F-11打开VBA编辑器,插入模块,然后复制此代码)
我无法测试这个,但我相信它是好的。如果您遇到问题,只需留下评论。如果您知道如何使用VBA,那么编写一个简短的sub()就可以了。我正在硬编码地址-你可以想出如何移动它。我假设在调用此宏时,您的数据在活动工作表上,并且您希望副本显示在原始数据的右侧(在A列和B列中,从第2行开始-为您提供上面标签的空间)。我还要假设你们的小组编号为1,2,3。。。你不需要复制它们的值。然后代码如下所示(按F-11打开VBA编辑器,插入模块,然后复制此代码)
我无法测试这个,但我相信它是好的。如果遇到问题,只需留下评论。将单元格的簇从列转移到行
假设A2:A16包含数据,请尝试
C2,横向和向下复制:
=INDEX($A$2:$A$16,ROWS(C$2:C2)*3-3+COLUMNS($C2:C2))
相应地调整参考
先尝试一行,然后再进行下一行,然后合并将单元格的簇从列转移到行
假设A2:A16包含数据,请尝试
C2,横向和向下复制:
=INDEX($A$2:$A$16,ROWS(C$2:C2)*3-3+COLUMNS($C2:C2))
相应地调整参考
首先尝试一行,然后执行下一行,然后合并如果我理解正确,第一列是标签,第二列是值。您真的需要将标签转置到值上方的一行中,还是只需要值。还有-所有组的长度都相同吗?我这样问是因为可能会有一些聪明的把戏…@Floris是对的,你在自己的行中一遍又一遍地重复组名并没有做任何有用的事情。如果你能告诉我们你有什么类型的数据,那也会很有帮助。i、 例如:矩阵、列表、数据框、数据表,以及您想要返回的类型。谢谢各位,你们是对的,我只需要转换值Shi Floris,所有组都有相同的长度,你们是对的,我不需要转换标签,你们介意和我分享你们的技巧吗?谢谢如果我理解正确,第一列是标签,第二列是值。您真的需要将标签转置到值上方的一行中,还是只需要值。还有-所有组的长度都相同吗?我这样问是因为可能会有一些聪明的把戏…@Floris是对的,你在自己的行中一遍又一遍地重复组名并没有做任何有用的事情。如果你能告诉我们你有什么类型的数据,那也会很有帮助。i、 例如:矩阵、列表、数据框、数据表,以及您想要返回的类型。谢谢各位,你们是对的,我只需要转换值Shi Floris,所有组都有相同的长度,你们是对的,我不需要转换标签,你们介意和我分享你们的技巧吗?谢谢
=INDEX($A$2:$A$16,ROWS(C$2:C2)*3-3+COLUMNS($C2:C2))