Bazı koşullara bağlı olarak, dplyr :: n ve isteğe bağlı bir işlev kullanmak arasında seçim yapmak zorundayım (örneğin, her türlü argüman verilen 2 değeri döndüren bir işlev olsun).Neden dplyr'ın n() işlevi atanması onu özetlenemez ve mutasyona uğratır?
aşağıdaki yaparsanız: Ben onu olduğu gibi normal bir şekilde çalışmaya bekliyordum iken n new_n atanan alır
new_n <- dplyr::n
new_n <- ifelse(is.null(k), new_n, my_new_n)
data <- data %>% group_by_(z) %>% mutate_(n = new_n)
örneği dplyr için ise :: hatası
Error: This function should not be called directly
olsun
Yazan Niçin Bu Nedir? Etrafta bir iş var mı? Temel olarak, k'ye bağlı olarak n içindeki değişkene farklı bir değer atamam gerekiyor, fakat mutasyonun proje gereksinimlerine bağlı olarak gerçekleştirildiği kod parçasını değiştiremiyorum.
DÜZENLEME: basit örnek eklendi. Eğer çalıştırmayı denediğinizde Örneğin ,
if (require("nycflights13")) {
carriers <- group_by(flights, carrier)
summarise(carriers, n())
mutate(carriers, n = n())
filter(carriers, n() < 100)
}
her şey kod çalışmaz
new_n <- n
summarise(carriers, new_n())
çalıştırmayı denediğinizde ancak eğer iyi çalışır ve siz rağmen yukarıdaki hatayı ne alırsınız Ben sadece yeni_n'ye n atamadım.
nerede 'data' olduğunu kullanmaz? – akrun
@akrun Veri dahil etmedim, ancak sorunumun "farklı sürümü" nü,? N yardım bölümündeki örnekle çalıştırmayı deneyebilirsiniz. New_n <- n 'i tanımlar ve n() yerine new_n() ile örneği çalıştırırsanız, aynı hatayı ve açıklamaya çalıştığım aynı sorunu alırsınız. – mickkk
@akrun Çalışan bir örnek ekledim – mickkk