【问题标题】:How to output the data with different lengths如何输出不同长度的数据
【发布时间】:2011-03-26 05:32:56
【问题描述】:

Windows 7 上的 R 版本 2.11.1 32 位

我想知道是否有其他人遇到过这个问题。我有几个不同长度的数组,我想把它们放在一起输出。例如:

a=c(1,2,3);
b=c(2,4,1,6)
c=c(4,5,9,2,8)
ra=rank(a);#ra=1 2 3
rb=rank(b);#rb=2 3 1 4
rc=rank(c);#rc=2 3 5 1 4

那么如何将ra、rb和rc放在一起是这样的:

1 2 3

2 3 1 4

2 3 5 1 4

是的,list() 可能会有所帮助,但我怎样才能将其保存到我的 PC 中。 我试图使用write.table(),但失败了。

【问题讨论】:

  • 你不说什么样的输出。这是给显示器的吗?或文件或什么?你想让它们作为字符串表示形式输出吗?
  • 你想将它写()为可读文本还是保存()它为 R 对象?
  • @RomanLuštrik @user 将您的问题标记为“已解决”的最佳方法是接受答案,方法是单击有助于解决您问题的答案旁边的绿色复选标记,或者,如果您自己找到了解决方案,请回答您自己的问题,以便未来的读者知道您是如何解决的

标签: r statistics


【解决方案1】:

将列表转换为字符串矩阵。

a=c(1,2,3);
b=c(2,4,1,6)
c=c(4,5,9,2,8)

rlist <- lapply(list(a,b,c), rank)
m <- do.call(rbind, lapply(rlist, 
                           function(x) paste(x,collapse=" ")
                           )
             )
write.table(m,file="file_name")

【讨论】:

    【解决方案2】:

    听起来你想要list

    > list(ra, rb, rc)
    [[1]]
    [1] 1 2 3
    
    [[2]]
    [1] 2 3 1 4
    
    [[3]]
    [1] 2 3 5 1 4
    

    【讨论】:

      【解决方案3】:
      > rlist <- lapply( list(a,b,c), rank)
      > rlist
      [[1]]
      [1] 1 2 3
      
      [[2]]
      [1] 2 3 1 4
      
      [[3]]
      [1] 2 3 5 1 4
      

      【讨论】:

        猜你喜欢
        • 2020-01-11
        • 1970-01-01
        • 2017-03-12
        • 2013-11-18
        • 1970-01-01
        • 2012-04-10
        • 2016-11-03
        • 2012-10-30
        • 1970-01-01
        相关资源
        最近更新 更多