Как я могу найти и выбрать / удалить почти одинаковые переменные во фреймах данных? - PullRequest
0 голосов
/ 06 мая 2019

У меня есть наборы данных, которые имеют несколько почти одинаковых (всегда одно и то же целое число, разные десятичные значения) чисел, не в одной строке во всех фреймах / списках данных.Что-то вроде:

1.003 
5.307 
11.912 
4.586 
13.900 
2.387

и

3.050
11.954
7.319
5.605

Я хотел бы вернуть 11,912 и 5,307.До сих пор я пытался уменьшить секунду до простого

3
11
7
5

, прежде чем использовать два цикла for для поиска любого случая, где 0> df1 - df2> 1. Если это выполнено, его следует записать вновый фрейм или список данных (здесь я не привередлив, это конец моих манипуляций с данными).df1 и df2 - это фреймы данных с одним столбцом, причем df2 уже урезан до целых чисел.

k = 1

for(i in 1:dim(df1)[1])
  {
    for(j in 1:dim(df2)[1])
    {
      if (df1[[i]]-df2[[j]] > 0 && df1[[i]]-df2[[j]] < 1)
      {
       df3[[k]] = data.frame(ID = k, Value = df1[[i]])
       k = k + 1
      }
    }
  }

выдает ошибку «объект типа« замыкание »не является поднабором».Я уверен, что мне не хватает какого-то синтаксиса или чего-то глупого, но я все еще начинающий R и не могу понять это.Я также не уверен, что, исправленные ошибки, этот код будет делать то, что я надеюсь.Любая помощь будет принята с благодарностью;Спасибо!

Андрей

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Путь к нехватке - это загрузка проекта в любом редакторе, таком как Wise Intlelij или редактирование, плюс поиск в пути. Ключевое слово serch заменяет все

.
0 голосов
/ 06 мая 2019

Попробуйте это

С учетом следующего кадра данных:

df <- data.frame(col1 = c(1.003,5.307,11.912,4.586,13.900,2.387),
                 col2 = c(3.050,11.954,7.319,5.605,10.312,8.421))

> df
    col1   col2
1  1.003  3.050
2  5.307 11.954
3 11.912  7.319
4  4.586  5.605
5 13.900 10.312
6  2.387  8.421

Мы можем применить следующее:

library(tidyverse)

df <- df %>%
  filter(as.integer(col1) %in% as.integer(col2)) %>%
  select(c(1))

Что дает:

> df
    col1
1  5.307
2 11.912
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...