Actualización de matriz existente con una nueva columna que almacena diferentes valores de p en filas

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))

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=391600&siteId=1
Recomendado
Clasificación