Liviosah:
Tengo el código que he escrito:
my.data = matrix(rnorm(20000), ncol = 20)
View(my.data)
empty5 = character()
empty10 = character()
for (variable in 1:nrow(my.data)) {
nrFirst5 = my.data[variable,c(1,2,3,4,5)]
nrSecond5 = my.data[variable,c(6,7,8,9,10)]
nrFirst10 = my.data[variable,c(1,2,3,4,5,6,7,8,9,10)]
nrSecond10 = my.data[variable,c(11,12,13,14,15,16,17,18,19,20)]
#print(nrSecord)
ttColumn5 = t.test(nrFirst5, nrSecond5, data = my.data, paired = TRUE)
pp5 = ttColumn5$p.value
#print(pp5)
ttColumn10 = t.test(nrFirst10, nrSecond10, data = my.data, paired = TRUE)
pp10 = ttColumn10$p.value
#print(tt)
#my.data$p5 = my.data[pColumn5]
#my.data$p10 = my.data[pColumn10]
pplace5 = append(empty5,pp5)
pplace10 = append(empty10,pp10)
}
my.data <- cbind(my.data, pplace5)
View(my.data)
Se obtiene todos los p-valores que desee. Sin embargo, me parece que no puede encontrar la manera de actualizar la matriz my.data con otra columna que tiene los valores de p. En este momento se crea una nueva columna llamada place5 pero almacena exactamente el mismo número en todas las filas. Pero lo quiero para almacenar diferentes valores de p en esas filas. Es posible que alguien ayuda?
También he tratado como tal
my.data$place5 = my.data$pplace5
Pero me da un error. Me gusta esto:
$ Operador no es válido para los vectores atómicas
DzimitryM:
Opción 1
my.data = matrix(rnorm(20000), ncol = 20)
pplace5 = character()
pplace10 = character()
for (variable in 1:nrow(my.data)) {
pp5 = t.test(my.data[variable,c(1:5)], my.data[variable,c(6:10)], paired = TRUE)$p.value
pp10 = t.test(my.data[variable,c(1:10)], my.data[variable,c(11:20)], paired = TRUE)$p.value
pplace5 = append(pplace5, pp5)
pplace10 = append(pplace10, pp10)
}
my.data <- cbind(my.data, pplace5)
my.data <- cbind(my.data, pplace10)
Opción 2 (más corto y más rápido):
my.data = matrix(rnorm(20000), ncol = 20)
aa <- apply(my.data, 1, function(x) {
pp5 = t.test(x[1:5], x[6:10], paired = TRUE)$p.value
pp10 = t.test(x[1:10], x[11:20], paired = TRUE)$p.value
c(pp5, pp10)
})
my.data <- cbind(my.data, t(aa))