- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框,例如;
Groups Value
G1 NA
G1 NA
G1 NA
G1 23
G2 NA
G2 NA
G2 NA
G2 NA
G2 NA
G2 NA
G3 34
G3 21
G4 NA
G4 NA
G5 NA
G5 45
我正在 R 中寻找一个代码,以便获得另一个具有二进制值的数据框(1 表示组中至少一个值是 >=1)和(0 表示仅包含 NA 值的组)
并得到一个新的数据报,例如:
G1 G2 G3 G4 G5
1 0 1 0 1
感谢您的帮助。
最佳答案
我们可以使用 base R
中的 table
。获取'Value'列作为逻辑向量(!is.na
),并找到'Groups'的频率表,检查频率是否大于0,将逻辑向量转换为二进制as.integer
或 +
+(table(df1$Groups, !is.na(df1$Value))[,2] > 0)
# G1 G2 G3 G4 G5
# 1 0 1 0 1
或者使用 base R
中的 rowsum
rowsum(+!is.na(df1$Value), df1$Groups)
注意:以上两种方法都是base R
- 没有使用包
或者使用tidyverse
library(tidyverse)
df1 %>%
group_by(Groups) %>%
summarise_all(list(~ as.integer(sum(!is.na(.)) > 0)))
# A tibble: 5 x 2
# Groups Value
# <chr> <int>
#1 G1 1
#2 G2 0
#3 G3 1
#4 G4 0
#5 G5 1
或者用data.table
library(data.table)
setDT(df1)[, +(sum(!is.na(Value)) > 0), Groups]
df1 <- structure(list(Groups = c("G1", "G1", "G1", "G1", "G2", "G2",
"G2", "G2", "G2", "G2", "G3", "G3", "G4", "G4", "G5", "G5"),
Value = c(NA, NA, NA, 23L, NA, NA, NA, NA, NA, NA, 34L, 21L,
NA, NA, NA, 45L)), class = "data.frame", row.names = c(NA,
-16L))
关于r - 根据条件从数据帧创建具有二进制值的 df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56079772/
努力理解标题中 5 个示例之间的区别。系列与数据框有一些用例吗?什么时候应该使用一个而不是另一个?哪些是等价的? 最佳答案 df[x] — 使用变量 x 索引列。返回 pd.Series df[[x]
在使用Jupyter Notebook时,我必须为问题标题中提到的df.info()、df.head()等单独留出空格. 有没有办法像第二张图片那样把所有这些都放在一个 block 中,并显示所有信息
我想求三列之和,我采取的方法如下: In [14]: a_pd = pd.DataFrame({'a': np.arange(3), 'b': [5, 7,
我想我们大多数人已经使用过这样的东西(至少如果你正在使用 tidyverse): library(tidyverse) example % select(- mpg) 我的问题: 我知道这部分有一
我有一个 DF,里面有大约 20,000 行。我构建了一个 Python 脚本来对这些数据(包括数据透视表)运行大量清理和数学运算。 我想将此 DF 拆分为 3 个独立的 DF,然后根据列值将这 3
我什至不知道如何表达这一点,但在 Python 中有没有一种方法可以引用等号之前的文本,而无需实际再次编写? ** 编辑 - 我在 Jupyter 中使用 python3 我似乎用了半辈子的时间来写作
在 df1 中,每个单元格值都是我想要从 df2 中获取的行的索引。 我想获取 df2 trial_ms 列中行的信息,然后根据获取的 df2 列重命名 df1 中的列。 可重现的 DF: # df1
我想转换此表 0 thg John 3.0 1 thg James 4.0 2 mol NaN 5.0 3 mol NaN NaN 4
我有一个数据框,我想从中提取 val 中的值大于 15 以及 val 不是 NA: df[ !is.na(df$val) & df$val > 15, ] 由于我假设在 R 中经常需要这样的比较,所
鉴于 coming deprecation of df.ix[...] 如何替换这段代码中的 .ix? df_1 = df.ix[:, :datetime.time(16, 50)] d
任何我可以帮助我说出 Pandas 中这两个语句之间的区别-python df.where(df['colname'] == value) 和 df[(df['colname'] == value)]
考虑 df Index A B C 0 20161001 0 24.5 1 20161001 3 26.5 2
所以我需要按“fh_status”列对行进行分组,然后对每个组执行“gini”的最小值、平均值和最大值(将有三个)。我想出了这段代码: m = (df2.groupby(['fh_status']).
我尝试计算不同公司/股票的一些 KPI。我的股票信息位于 df 中,具有以下结构 Ticker Open High Low Ad
我有一个看起来像这样的 df: gene ID Probe ID Chromosome Start Stop 1: H3F3A 539154271
nn_idx_df 包含与 xyz_df 的索引匹配的索引值。如何从 xyz_df 中的 H 列获取值并在 nn_idx_df 中创建新列以匹配 output_df 中所示的结果。我可以解决这个问题,
我目前的 DF 看起来像这样 Combinations Count 1 ('IDLY', 'VADA') 3734 6 ('DOSA', 'IDLY')
我看到了几个与此相关的问题,但我发现这些技巧都不起作用。 我正在尝试根据第二个数据帧的值填充数据帧的所有 NaN 值。第一个 df 很大,第二个 df 将充当某种键。 DF1 Par
我有两个数据帧,df1 和 df2。每个数据帧的唯一标识符是“ID”和“Prop_Number”。我需要将 df1 中的 Num1、2 和 3 列复制到 df2、1_Num 中的相应列...但我不确定
我有以下数据框: 注意:日期是索引 city morning afternoon evening midnight date 2014-05-01 Y
我是一名优秀的程序员,十分优秀!