分组数据并生成新列

我的数据如下所示:

1 0 12341 0 12351 0 54342 1 312122 1 32122 0 12113 0 22123 0 22123 1 1212

我想使用R来生成一个新列,如果第二列中属于同一组的三个值中至少有一个为1,则新列的值为1。因此,我的新列将如下所示:

1 0 1234 01 0 1235 0 1 0 5434 02 1 31212 12 1 3212 12 0 1211 13 0 2212 13 0 2212 13 1 1212 1

由于每三行属于同一组,我无法弄清楚如何实现这一点。谁能帮帮我吗?


回答:

你可以使用dplyrgroup_by对第一列(在我这里是V1)进行分组,然后使用any来检查是否有任何值等于1。

library(dplyr)df %>%    group_by(V1) %>%    mutate(new = ifelse(any(V2) == 1, 1, 0))#Source: local data frame [9 x 4]#Groups: V1 [3]#     V1    V2    V3   new#  <int> <int> <int> <dbl>#1     1     0  1234     0#2     1     0  1235     0#3     1     0  5434     0#4     2     1 31212     1#5     2     1  3212     1#6     2     0  1211     1#7     3     0  2212     1#8     3     0  2212     1#9     3     1  1212     1

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注