У меня есть некоторые транспортные данные, которые я хотел бы выполнить по строкам, если сравнение в течение l oop. Данные выглядят примерно так.
# Using the iris dataset
> iris <- as.data.frame(iris)
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
Где результат будет записывать случаи длины чашелистика с равной шириной лепестка у каждого вида. Таким образом, мы записываем пары длины чашелистика с равной шириной лепестка (это только иллюстрация, не имеющая научного значения). Что приведет к чему-то вроде этого:
Species Petal.Width Sepal.Length1 Sepal.Length2
setosa 0.2 5.1 4.9
setosa 0.2 5.1 4.7
setosa 0.2 4.9 4.7
setosa 0.2 5.1 4.6
...
Моя первоначальная мысль Python -i sh заключалась в том, чтобы выполнить для l oop в пределах для l oop, выглядя примерно так:
for s in unique(Species):
for i in 1:nrow(iris):
for j in 1:nrow(iris):
if iris$Petal.Width[i,] == iris$Petal.Width[j,]:
Output$Species = iris$Species[i,]
Output$Petal.Width = iris$Petal.Width[i,]
Output$Sepal.Length1= iris$Sepal.Length[i,]
Output$Sepal.Length2= iris$Sepal.Length[j,]
end
end
end
Я думал об использовании group_by
для классификации Species
первым, чтобы получить первое для l oop for s in unique(Species):
. Но я не знаю, как последовательно сравнивать каждое наблюдение в наборе данных и сохранять его как второй блок кода. Я видел вопросы по для циклов в dplyr и по строкам . Приношу свои извинения, если код выше не так ясно. Первый раз задаю вопрос здесь.