我有一个具有这些名称的数据框:
df <- tribble( ~ state, ~ county, ~ kfr_asian_pooled_p25, ~ kfr_asian_pooled_p75,
~ kfr_black_pooled_p25, ~ kfr_black_pooled_p75,
~ kfr_pooled_pooled_p25, ~ kfr_pooled_pooled_p75, ~ kfr_white_pooled_p25,
~ kfr_white_pooled_p75, ~ kids_count, ~ kfr_asian_pooled_p25_se,
~ kfr_asian_pooled_p75_se, ~ kfr_black_pooled_p25_se,
~ kfr_black_pooled_p75_se, ~ kfr_white_pooled_p25_se,
~ kfr_white_pooled_p75_se,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
Run Code Online (Sandbox Code Playgroud)
当然,数据集很大,但我想要实现的是利用其最大潜力来延长时间。我的意思是同时获取多个变量并旋转它们及其名称。
df <- tribble(~ state, ~ county, ~ kids_count, ~ race, ~ percentile, ~ se, ~ value,
1, 2, 3, "asian", "p25", TRUE, value,
2, …
Run Code Online (Sandbox Code Playgroud) 我有两个数据框,看起来像这样:
dat <- data.frame(col1 = c(1:100))
dat2 <- data.frame(col2 = c(5:105))
Run Code Online (Sandbox Code Playgroud)
dat
我想找到 中但不在 中的所有元素dat2
。我怎样才能做到这一点?
谢谢!
例子:
所以可以说我有这个数据框。
x = data.frame(factor = as.factor(c('a','a','b','b','c','c')),value1 = c(1,3,2,4,5,3), value2 = c(7,9,3,4,9,3))
factor value1 value2
1 a 1 7
2 a 3 9
3 b 2 3
4 b 4 4
5 c 5 9
6 c 3 3
Run Code Online (Sandbox Code Playgroud)
我知道如何获得每个因素的平均值,我使用这种方法:
aggregate(x[,c(2,3)], list(x$factor), mean, na.rm = T )
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出:
Group.1 value1 value2
1 a 2 8.0
2 b 3 3.5
3 c 4 6.0
Run Code Online (Sandbox Code Playgroud)
我现在如何从原始数据框中的每个值中减去其因子的相应平均值。我使用的实际数据集很大,所以需要有一个很好的方法,我已经设法做到了,但我使用了复杂的 for 循环。
所以我想要的输出是:
factor value1 value2
1 a -1 -1.0
2 a 1 1.0
3 b …
Run Code Online (Sandbox Code Playgroud) 我有一个 Pandas 聚合数据框,如下所示:
import pandas as pd
agg_df = pd.DataFrame({'v1':['item', 'item', 'item', 'item', 'location', 'status', 'status'],
'v2' :['bed', 'lamp', 'candle', 'chair', 'home', 'new', 'used' ],
'count':['2', '2', '2', '1', '7', '4', '3' ]})
agg_df
Run Code Online (Sandbox Code Playgroud)
我想为学术出版做准备,我需要一个像这样的新数据框:
# item bed 2
# lamp 2
# candle 2
# chair 1
# location home 7
# status new 4
# used 3
Run Code Online (Sandbox Code Playgroud)
如何创建这样的数据框?
我有一个包含数百列的大型数据库,我想知道两列的每种可能组合有多少完整案例。
例子:
library(data.table)
DT <- data.table(V1 = c(NA, NA, NA, 3, 5),
V2 = c("a", "b", "c", NA, NA),
V3 = c(1, 5, NA, 4, 5),
V4 = c(NA, NA, NA, NA, NA))
# > DT
# V1 V2 V3 V4
# 1: NA a 1 NA
# 2: NA b 5 NA
# 3: NA c NA NA
# 4: 3 <NA> 4 NA
# 5: 5 <NA> 5 NA
Run Code Online (Sandbox Code Playgroud)
我期望的是这样的:
对角线表示该变量的完整案例数。我想过使用某种 for 循环,但它变得非常麻烦。也许功能/解决方案已经存在?
我有一个数据框(df1),它在给定组内有多次运行。现在,我想在不改变数据帧的整体结构的情况下对给定组内的运行进行洗牌。我的意思是,第 1 列(组)应保持不变,但第二列(运行)的顺序应在该组的行范围内进行改组。df2 中给出了所需的结果。
df1 <- structure(list(Group = c("A", "A", "A", "B", "B", "B", "B", "B",
"C", "C", "C", "C"), Run = c(1L, 2L, 3L, 1L, 2L, 3L, 4L, 5L,
1L, 2L, 3L, 4L)), class = "data.frame", row.names = c(NA, -12L
))
df2 <- structure(list(Group = c("A", "A", "A", "B", "B", "B", "B", "B",
"C", "C", "C", "C"), Run = c(1L, 3L, 2L, 2L, 1L, 3L, 4L, 5L,
1L, 3L, 4L, 2L)), class = "data.frame", row.names = c(NA, -12L
)) …
Run Code Online (Sandbox Code Playgroud) 我有一个 R 格式的数据框,如下表所示。我想将列“M1.1”、“M1.2”和“M1.3”合并为单个列“M1”,以便条目位于自己的行上(其他列中的 id 和值将重复)如第二个表所示。我可以使用什么函数来完成此任务?
ID | M1.1 | M1.2 | M1.3 | M2 | M3 | M4 | M5 | M6 |
---|---|---|---|---|---|---|---|---|
测试一个 | 测试t | 测试一个 | 测试y | 测试 | 测试t | 测试y | 测试你 | 测试w |
测试 | 测试r | 测试一个 | 测试时间 | 测试r | 测试j | 测试j | 测试w | 测试d |
ID | M1 | M2 | M3 | M4 | M5 | M6 |
---|---|---|---|---|---|---|
测试一个 | 测试t | 测试 | 测试t | 测试y | 测试你 | 测试w |
测试一个 | 测试一个 | 测试 | 测试t | 测试y | 测试你 | 测试w |
测试一个 | 测试y | 测试 | 测试t | 测试y | 测试你 | 测试w |
测试 | 测试r | 测试r | 测试j | 测试j | 测试w | 测试d |
测试 | 测试一个 | 测试r | 测试j | 测试j | 测试w | 测试d |
测试 | 测试时间 | 测试r | 测试j | 测试j | 测试w … |
考虑 2 个 dfs:
df1:
可乐 | 上校 B | 上校 |
---|---|---|
汤姆 | 冰淇淋 | 0.2 |
汤姆 | 糖果 | 0.4 |
汤姆 | 棒糖 | 0.6 |
鲍勃 | 糖果 | 0.1 |
安倍 | 糖果 | 0.1 |
df2:
可乐 | 寒冷的 | 科尔 |
---|---|---|
汤姆 | 糖果 | 0.5 |
汤姆 | 巧克力 | 0.2 |
汤姆 | 可乐 | 0.3 |
如果我使用full_join
,right_join
或merge
with by = "Col A"
(with all.y=TRUE
),我会将每个“排列”作为自己的行:
df3:
可乐 | 上校 B | 上校 | 寒冷的 | 科尔 |
---|---|---|---|---|
汤姆 | 冰淇淋 | 0.2 | 糖果 | 0.5 |
汤姆 | 冰淇淋 | 0.2 | 巧克力 | 0.2 |
汤姆 | 冰淇淋 | 0.2 | 可乐 | 0.3 |
汤姆 | 糖果 | 0.4 | 糖果 | 0.5 |
汤姆 | 糖果 … |
我有以下数据:
df <- data.frame(id = c("001", "001", "001", "002", "002", "003", "003"),
x = c(0, 0, 0, 0, 1, 0, 1))
id x
001 0
001 0
001 0
002 0
002 1
003 0
003 1
Run Code Online (Sandbox Code Playgroud)
数据的性质使得某些数据可能id
只有行x = 0
。对于x = 1
给定的id
,它只出现一次,并且也出现在该 的最后一行id
。我想删除每个 的重复行id
,但对于x = 1
an id
,我只想保留该行。
所需的输出:
id x
001 0
002 1
003 1
Run Code Online (Sandbox Code Playgroud)
tidyverse
优选解决方案。谢谢!
我被困在我的项目中的数据整理步骤,我想知道是否有人能够帮助我。
我拥有的数据框的一部分是这样的:
人 | 月 | GPI |
---|---|---|
1 | 12 | 10 |
1 | 12 | 12 |
1 | 11 | 18 |
1 | 10 | 20 |
2 | 10 | 12 |
2 | 8 | 14 |
2 | 9 | 16 |
但是,我按 Person 分组并且只保留 2 个最大的唯一月份值的行。因此,对于第 1 个人,这将是第 12 和 11 个月,对于第 2 个人,这将是第 10 和第 9 个月。最终我想平均每个人的 GPI。
桌子应该是这样的
人 | 月 | GPI | 平均_GPI |
---|---|---|---|
1 | 12 | 10 | 8 |
1 | 12 | 7 | 8 |
1 | 11 | 7 | 8 |
2 | 10 | 12 | 14 |
2 | 9 | 16 | 14 |
希望其他人可以帮助我解决这个问题。
这是创建第一个表的代码:import pandas as pd
df = pd.DataFrame({'Person':[1, 1, 1, 1, …
Run Code Online (Sandbox Code Playgroud)