标签: reshape

如何将数据从长格式转换为宽格式?

我无法重新排列以下数据框:

set.seed(45)
dat1 <- data.frame(
    name = rep(c("firstName", "secondName"), each=4),
    numbers = rep(1:4, 2),
    value = rnorm(8)
    )

dat1
       name  numbers      value
1  firstName       1  0.3407997
2  firstName       2 -0.7033403
3  firstName       3 -0.3795377
4  firstName       4 -0.7460474
5 secondName       1 -0.8981073
6 secondName       2 -0.3347941
7 secondName       3 -0.5013782
8 secondName       4 -0.1745357
Run Code Online (Sandbox Code Playgroud)

我想重塑它,以便每个唯一的"名称"变量是一个rowname,其中"值"作为沿该行的观察值,"数字"作为同名.有点像:

     name          1          2          3         4
1  firstName  0.3407997 -0.7033403 -0.3795377 -0.7460474
5 secondName -0.8981073 -0.3347941 -0.5013782 -0.1745357
Run Code Online (Sandbox Code Playgroud)

我看melt,并cast和其他一些东西,但没有人可以做的工作.

r reshape r-faq

243
推荐指数
11
解决办法
18万
查看次数

将数据框架从宽格式转换为长格式

将我data.frame从宽表转换为长表时遇到一些麻烦.目前它看起来像这样:

Code Country        1950    1951    1952    1953    1954
AFG  Afghanistan    20,249  21,352  22,532  23,557  24,555
ALB  Albania        8,097   8,986   10,058  11,123  12,246
Run Code Online (Sandbox Code Playgroud)

现在我想把它data.frame变成一个长期的data.frame.像这样的东西:

Code Country        Year    Value
AFG  Afghanistan    1950    20,249
AFG  Afghanistan    1951    21,352
AFG  Afghanistan    1952    22,532
AFG  Afghanistan    1953    23,557
AFG  Afghanistan    1954    24,555
ALB  Albania        1950    8,097
ALB  Albania        1951    8,986
ALB  Albania        1952    10,058
ALB  Albania        1953    11,123
ALB  Albania        1954    12,246
Run Code Online (Sandbox Code Playgroud)

我已经看过并尝试了它melt()reshape()功能,因为有些人提出了类似的问题.但是,到目前为止我只得到凌乱的结果.

如果有可能我想用这个reshape() …

r reshape dataframe r-faq

142
推荐指数
7
解决办法
9万
查看次数

将三列数据帧重新整形为矩阵("长"到"宽"格式)

我有一个data.frame看起来像这样的.

x a 1 
x b 2 
x c 3 
y a 3 
y b 3 
y c 2 
Run Code Online (Sandbox Code Playgroud)

我想以矩阵形式这样做,所以我可以将它送到热图以制作情节.结果应该类似于:

    a    b    c
x   1    2    3
y   3    3    2
Run Code Online (Sandbox Code Playgroud)

我已尝试cast从reshape包中尝试编写手动函数来执行此操作,但我似乎无法正确执行此操作.

r matrix plyr reshape dataframe

121
推荐指数
1
解决办法
7万
查看次数

收集多组列

我有来自在线调查的数据,受访者经历了1-3次问题循环.调查软件(Qualtrics)记录在多列,也就是说这个数据,Q3.2的调查将在列Q3.2.1.,Q3.2.2.以及Q3.2.3.:

df <- data.frame(
  id = 1:10,
  time = as.Date('2009-01-01') + 0:9,
  Q3.2.1. = rnorm(10, 0, 1),
  Q3.2.2. = rnorm(10, 0, 1),
  Q3.2.3. = rnorm(10, 0, 1),
  Q3.3.1. = rnorm(10, 0, 1),
  Q3.3.2. = rnorm(10, 0, 1),
  Q3.3.3. = rnorm(10, 0, 1)
)

# Sample data

   id       time    Q3.2.1.     Q3.2.2.    Q3.2.3.     Q3.3.1.    Q3.3.2.     Q3.3.3.
1   1 2009-01-01 -0.2059165 -0.29177677 -0.7107192  1.52718069 -0.4484351 -1.21550600
2   2 2009-01-02 -0.1981136 -1.19813815  1.1750200 -0.40380049 -1.8376094  1.03588482
3   3 …
Run Code Online (Sandbox Code Playgroud)

r reshape dplyr qualtrics tidyr

97
推荐指数
5
解决办法
8万
查看次数

在列中拆分分隔的字符串并作为新行插入

我有一个数据框如下:

+-----+-------+
|  V1 |  V2   |
+-----+-------+
|  1  | a,b,c |
|  2  | a,c   |
|  3  | b,d   |
|  4  | e,f   |
|  .  | .     |
+-----+-------+
Run Code Online (Sandbox Code Playgroud)

每个字母表都是用逗号分隔的字符.我想在每个逗号上拆分V2并将拆分字符串作为新行插入.例如,所需的输出将是:

+----+----+
| V1 | V2 |
+----+----+
|  1 |  a |
|  1 |  b |
|  1 |  c |
|  2 |  a |
|  2 |  c |
|  3 |  b |
|  3 |  d |
|  4 | …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation strsplit reshape dataframe

85
推荐指数
5
解决办法
6万
查看次数

将csv加载到带有numpy的2D矩阵中进行绘图

鉴于此CSV文件:

"A","B","C","D","E","F","timestamp"
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291111964948E12
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291113113366E12
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291120650486E12
Run Code Online (Sandbox Code Playgroud)

我只想将它作为矩阵/ ndarray加载3行和7列.但是,出于某种原因,我可以摆脱numpy的是一个有3行(每行一个)而没有列的ndarray.

r = np.genfromtxt(fname,delimiter=',',dtype=None, names=True)
print r
print r.shape

[ (611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291111964948.0)
 (611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291113113366.0)
 (611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291120650486.0)]
(3,)
Run Code Online (Sandbox Code Playgroud)

我可以手动迭代并将其破解成我想要的形状,但这看起来很傻.我只是想把它作为一个合适的矩阵加载,这样我就可以将它切成不同的尺寸并绘制它,就像在matlab中一样.

python csv arrays numpy reshape

69
推荐指数
2
解决办法
16万
查看次数

将数据框重新排列到表格,与"融化"相反

我有这样庞大的数据帧:

SN = c(1:100, 1:100, 1:100, 1:100)  
class = c(rep("A1", 100), rep("B2", 100), rep("C3", 100), rep("D4", 100)) # total 6000 levels 
myvar = rnorm(400)
mydf = data.frame(SN, class, myvar) 
Run Code Online (Sandbox Code Playgroud)

我希望"unmelt"到一个表,每个级别为单列,myvar填充:

SN          A1            B2          C3         D4       .............and so on for all 6000 
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点,我知道这是一个简单的问题,但我无法弄明白.

r reshape dataframe

55
推荐指数
2
解决办法
4万
查看次数

子集R数据帧导致神秘的NA行

我一直在遇到我认为的错误.这不是什么大问题,但我很好奇是否有其他人看过这个.不幸的是,我的数据是保密的,所以我必须要弥补的例子,它不会是非常有益的.

当子集化我的数据,我偶尔得到不在我的原始数据帧神秘NA行.甚至rownames都是NA.例如:

example <- data.frame("var1"=c("A", "B", "A"), "var2"=c("X", "Y", "Z"))
example

  var1 var2
1    A    X
2    B    Y
3    A    Z
Run Code Online (Sandbox Code Playgroud)

然后我跑:

example[example$var1=="A",]

  var1 var2
1    A    X
3    A    Z
NA<NA> <NA>
Run Code Online (Sandbox Code Playgroud)

当然,上面的例子实际上并没有给你这个神秘的NA行; 我在这里添加它来说明我对数据的问题.

也许这与我使用Google的read.xlsx包导入我的原始数据集然后在子集化之前执行从长到长的重塑这一事实有关.

谢谢

r subset reshape na

49
推荐指数
5
解决办法
3万
查看次数

在R中重塑与reshape2

我试图理解为什么开发已经转变reshapereshape2包装.它们似乎在功能上是相同的,但是,reshape2由于服务器上运行的旧版本的R ,我无法升级到当前.我担心一个主要错误的可能性会将开发转移到一个全新的包而不是简单地继续开发reshape.有谁知道reshape包装中是否存在重大缺陷?

r reshape reshape2

48
推荐指数
1
解决办法
2万
查看次数

与蟒蛇大熊猫融化相反

我无法弄清楚如何在python中使用Pandas进行"反向融化".这是我的起始数据

import pandas as pd

from StringIO import StringIO

origin = pd.read_table(StringIO('''label    type    value
x   a   1
x   b   2
x   c   3
y   a   4
y   b   5
y   c   6
z   a   7
z   b   8
z   c   9'''))

origin
Out[5]: 
  label type  value
0     x    a      1
1     x    b      2
2     x    c      3
3     y    a      4
4     y    b      5
5     y    c      6
6     z    a      7
7     z    b      8
8     z …
Run Code Online (Sandbox Code Playgroud)

python pivot reshape melt pandas

45
推荐指数
2
解决办法
2万
查看次数

标签 统计

reshape ×10

r ×8

dataframe ×4

python ×2

r-faq ×2

arrays ×1

csv ×1

data-manipulation ×1

dplyr ×1

matrix ×1

melt ×1

na ×1

numpy ×1

pandas ×1

pivot ×1

plyr ×1

qualtrics ×1

reshape2 ×1

strsplit ×1

subset ×1

tidyr ×1