Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R或excel中将不同的组从列转换到行_R_Excel_Transpose - Fatal编程技术网

如何在R或excel中将不同的组从列转换到行

如何在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

我找了几个答案,但似乎没有人能回答我的问题

我的数据是这样的(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 20 50 40 30 60")
    matrix(x,nrow=2,byrow=T)

x
x如果您知道如何使用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))