Мне нужно преобразовать данные по арксинусу, но, поскольку я никогда раньше этого не делал, я не уверен, что код, который я использую, правильный, и поэтому я не знаю, как устранять ошибки, когда они возникают.
Мой код (с использованием csv: HS.PvsPERC):
mydata<-read.csv(file.choose())
attach(mydata)
summary(mydata)
str(mydata)
head(mydata)
dput(mydata)
mydata <-
structure(list(Herd.size = structure(c(2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), .Label = c("Large", "Small"), class = "factor"),
Any.pregnant.in.herd. = structure(c(2L, 1L, 2L, 1L, 1L, 1L,
2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L,
2L, 2L, 2L, 2L, 2L, 1L), .Label = c("no clear evidence",
"pregnant"), class = "factor"), percentage.of.heads.up.at.halfway = c(0,
100, 80, 25, 57.14, 100, 0, 25, 50, 100, 100, 70, 100, 14.29,
26.67, 100, 50, 40, 67.65, 43.59, 5.41, 44.9, 41.5, 69.23,
14.29, 7.07, 6.05)), class = "data.frame", row.names = c(NA,
-27L))
shapiro.test(mydata$percentage.of.heads.up.at.halfway)
length(percentage.of.heads.up.at.halfway)
mydatatrans<-asin(sqrt(mydata$percentage.of.heads.up.at.halfway))
Последняя строка выдает ошибку:
**Предупреждающее сообщение:
В asin(sqrt(mydata$percentage.of.heads.up.at.halfway)) : произведено NaN**
который я не уверен в том, как изменить/интерпретировать.
Я также пробовал (как предлагалось в других ответах):
trans.arcsine<-asin(sign(mydata)*sqrt(abs(mydata)))
**Ошибка в Math.data.frame(mydata): нечисловые переменные во фрейме данных: Herd.size, Any.pregnant.in.herd.**
(для любой беременной в столбце стада я использовал беременную и нет четких доказательств - должен ли я сделать их числовыми, как 1 и 0 или что-то подобное?)
trans.arcsine<-function(mydata){asin(sign(mydata)*sqrt(abs(mydata)))}
trans.arcsine(Herd.size~Any.pregnant.in.herd.)
**Ошибка в знаке (mydata): нечисловой аргумент математической функции**
Я пытаюсь сравнить размер стада и стельность с процентом головокружения, который должен быть двусторонним анализом, но сначала нужно преобразовать данные.
df
, а неmydata
в качестве имени фрейма данных. Просто измените это, и это сработает. 04.05.2019numeric(0)
, вы, должно быть, делаете что-то еще, что делаетmydata$percentage.of.heads.up.at.halfway
вектором нулевой длины. 04.05.2019mydata$new_column = mydatatrans
, гдеnew_column
может быть любым именем, которое вы хотите, которое не является столбцом вmydata
или одним из уже существующих, чтобы перезаписать этот столбец. 05.05.2019