我希望对长格式的数据帧进行排序,就好像它是宽格式的一样,但是我不希望改变数据帧的结构来使其变宽。如何使用tidyverse/dplyr工具来实现这一点,例如排列、组、forcat::fct_reorder等?
举个例子:如果数据是宽格式的,它会是这样的:
df1 <- data.frame(id = c("A", "B", "C"),
col1 = c(8, 8, 7),
col2 = c(7, 9, 3))
id col1 col2
1 A 8 7
2 B 8 9
3 C 7 3
我会简单地按col1和col2对它进行排序,按两列的降序排列,所以它只是交换前两行。
事实上,我有很长的格式,如下所示:
df2 <- data.frame(id = c("A", "A", "B", "B", "C", "C"),
type = c(1, 2, 1, 2, 1, 2),
value = c(8, 7, 8, 9, 7, 3))
id type value
1 A 1 8
2 A 2 7
3 B 1 8
4 B 2 9
5 C 1 7
6 C 2 3
在分类之后,我希望它看起来像这样:
id type value
1 B 1 8
2 B 2 9
3 A 1 8
4 A 2 7
5 C 1 7
6 C 2 3
为了对单词进行排序,我想首先根据类型1的值进行排序,如果存在关联,则根据类型2的值对这些关联进行排序。
使用dcast()
-order()
-melt()
方法。
library(reshape2)
m1 <- dcast(df2, ... ~ id)
m2 <- m1[, order(-m1[2, ])]
m3 <- melt(m2, id=c("type"))
rm(m1, m2)
> m3[, c(2, 1, 3)]
variable type value
1 B 1 8
2 B 2 9
3 A 1 8
4 A 2 7
5 C 1 7
6 C 2 3
数据
> dput(df2)
structure(list(id = structure(c(1L, 1L, 2L, 2L, 3L, 3L), .Label = c("A",
"B", "C"), class = "factor"), type = c(1, 2, 1, 2, 1, 2), value = c(8,
7, 8, 9, 7, 3)), class = "data.frame", row.names = c(NA, -6L))
下面是一种可能的方法。它不是很简洁,但可以完成工作。
library(dplyr)
df2 %>%
group_by(type) %>%
arrange(id) %>%
group_by(id) %>%
mutate(
col1 = ifelse(type == 1, value, NA),
col1 = max(col1, na.rm = T),
total = sum(value)
) %>%
arrange(desc(col1), desc(total)) %>%
select(id:value)
# # A tibble: 6 x 3
# # Groups: id [3]
# id type value
# <fct> <dbl> <dbl>
# 1 B 1 8
# 2 B 2 9
# 3 A 1 8
# 4 A 2 7
# 5 C 1 7
# 6 C 2 3
目前,我有一个名为的,看起来像这样,其中几何体表示一个点(纬度、经度)。 给定另一个点(lat,long),我想找到从这个数据框到那个特定点的最近点。我用距离函数计算了最近的点 现在我有一个系列,看起来像这样 我怎样才能得到一个Geodataframe的副本,它按相同的顺序排序,如下所示?谢谢
我有一个像这样的数据框- 我有一个这样的列表- 现在,我想根据列名列表对数据框进行排序 因此,新的数据框将有列名称-
我有2个不同行的数据帧,dF1=(1098 x 2列)和df2=(1331 x2)例如: df1 df2 在pandas数据帧中,借助于获取彼此之间的最近点,我计算df1的每一行和df2的所有行之间的欧几里德距离,因此新的_df具有(1089 x 1331)。新德里 我想要这样的结果: 换句话说,我想让每一行新的_df按升序对列的值进行排序,最后返回我想要的结果。 我不能在熊猫数据帧中使用互相获取
我想按值长度对Map进行排序。例如,我有这样的代码: 结果是: 所以我想做的是按值长度对这个Map进行排序,所以它返回:
我试图将pandas数据帧从宽到长,但我找不到一个好方法。有没有建议通过熊猫来实现这一点? 预期结果:
我有一个光谱仪的波长和吸光度输入文件。在这个文件中,数据被记录并作为数据帧的最后两列添加。柱需要指定测量特定吸光度(=数据)的波长。 我希望有一个数据框架,使我的分析更容易一点。诸如此类: 我知道,凭借我相当基本的python技能,我可能会将每个波长数据对存储为元组列表,并使一些复杂的排序魔法发生。但是自从我试图了解更多关于熊猫模块的信息以来,我一直在想我是否能更轻松地解决这个问题。然而,虽然我发