我正在使用melt并遇到以下警告消息:
attributes are not identical across measure variables; they will be dropped
环顾四周后人们提到它是因为变量是不同的类; 但是,我的数据集不是这种情况.
这是数据集:
test <- structure(list(park = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("miss", "piro", "sacn", "slbe"), class = "factor"),
a1.one = structure(c(3L, 1L, 3L, 3L, 3L, 3L, 1L, 3L, 3L,
3L), .Label = c("agriculture", "beaver", "development", "flooding",
"forest_pathogen", "harvest_00_20", "harvest_30_60", "harvest_70_90",
"none"), class = "factor"), a2.one = structure(c(6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚如何在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) 最近我使用dplyr进行所有数据操作,它是一个很好的工具.但是我无法使用dplyr融合或转换数据框.有没有办法做到这一点?现在我正在使用reshape2来达到这个目的.
我想'dplyr'解决方案:
require(reshape2)
data(iris)
dat <- melt(iris,id.vars="Species")
Run Code Online (Sandbox Code Playgroud) PySpark中的Apache Spark中是否存在等效的Pandas Melt函数,或者至少在Scala中?
我到目前为止在python中运行了一个示例数据集,现在我想将Spark用于整个数据集.
提前致谢.
我需要将我的宽表重新整形为长格式,但为每条记录保留多个字段,例如:
dw <- read.table(header=T, text='
sbj f1.avg f1.sd f2.avg f2.sd blabla
A 10 6 50 10 bA
B 12 5 70 11 bB
C 20 7 20 8 bC
D 22 8 22 9 bD
')
# Now I want to melt this table, keeping both AVG and SD as separate fields for each measurement, to get something like this:
# sbj var avg sd blabla
# A f1 10 6 bA
# A f2 50 10 bA
# B …Run Code Online (Sandbox Code Playgroud) 给定以下形式的方形pandas DataFrame:
a b c
a 1 .5 .3
b .5 1 .4
c .3 .4 1
Run Code Online (Sandbox Code Playgroud)
我怎么才能melt得到上三角形
Row Column Value
a a 1
a b .5
a c .3
b b 1
b c .4
c c 1
#Note the combination a,b is only listed once. There is no b,a listing
Run Code Online (Sandbox Code Playgroud)
我对一个习惯性的熊猫解决方案更感兴趣,一个自定义索引器很容易手工编写...提前感谢您的考虑和响应.
我正在处理来自mothur的稀疏输出,它基本上给我一个数据集,其中包含采样的序列数和几个样本中的唯一序列数.我想使用ggplot2来可视化这些数据,因此需要使用melt从a wide到long格式.
问题是我发现由于错误导致无法完成这项工作melt.这基本上说明了
错误:数据中找不到id变量:1,3,6,(...等等)
由于原始数据集的大小,在此处共享它将是不切实际的,但是应该能够使用以下代码重新创建相同的问题:
a<-seq(0,300,3)
b<-runif(length(a))
c<-runif(length(a))
d<-as.data.frame(cbind(a,b,c))
d$a<-as.factor(d$a)
melt(d,d$a)
Run Code Online (Sandbox Code Playgroud)
这给出了完全相同的错误:
错误:数据中找不到id变量:0,3,6,9,(...)
我没有看到我做错了什么.我在ubuntu服务器12.04上使用R 2.15.1.功能reshape::melt和reshape2::melt结果都是相同的错误.
我想重塑一个宽格式数据集,该数据集具有多个测试,这些测试在3个时间点进行测量:
ID Test Year Fall Spring Winter
1 1 2008 15 16 19
1 1 2009 12 13 27
1 2 2008 22 22 24
1 2 2009 10 14 20
2 1 2008 12 13 25
2 1 2009 16 14 21
2 2 2008 13 11 29
2 2 2009 23 20 26
3 1 2008 11 12 22
3 1 2009 13 11 27
3 2 2008 17 12 23
3 2 2009 14 9 31
Run Code Online (Sandbox Code Playgroud)
进入一个按列分隔测试的数据集,但将测量时间转换为长格式,对于每个新列,如下所示: …
假设以下DataFrame:
key.0 key.1 key.2 topic
1 abc def ghi 8
2 xab xcd xef 9
Run Code Online (Sandbox Code Playgroud)
如何将所有key.*列的值组合到单个列'key'中,该列与对应于key.*列的主题值相关联?这是我想要的结果:
topic key
1 8 abc
2 8 def
3 8 ghi
4 9 xab
5 9 xcd
6 9 xef
Run Code Online (Sandbox Code Playgroud)
请注意,key.N列的数量在某些外部N上是可变的.
melt.data.frame的默认行为是返回"factor"类中的"variable"列.这是一个例子:
> head(airquality)
ozone solar.r wind temp month day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
> x = melt(head(airquality))
Using as id variables
> head(x)
variable value
1 ozone 41
2 ozone 36
3 ozone 12
4 ozone 18
5 ozone NA
6 ozone …Run Code Online (Sandbox Code Playgroud)