(Edited)Aktualisieren einen data.table in R
ich den folgenden Code verwenden, um zwei Spalten in einem data.table und aktualisieren Sie sie mit einigen Zahlen:
T <- data.table(Init_1 = rep(0, 100), Init_2 = rep(0, 100))
for (i in 1:100){
T[, Init_1 := i]
T[, Init_2 := 2*i]
}
ich, dass dies erwartet Code würde der data.table T (Init_1 und Init_2) zwei Spalten hinzufügen und sie mit Zahlen füllen: (1: 100) bzw. (2,4, ... 200).
Allerdings gibt den Code konstante Werte:
> T
Init_1 Init_2
1: 100 200
2: 100 200
3: 100 200
4: 100 200
5: 100 200
6: 100 200
7: 100 200
8: 100 200
.................
Können Sie sich erklären, warum mein Code nicht wie erwartet funktioniert und wie es behoben werden kann?
Ihr Rat wird geschätzt.
Edit:
In Bezug 2 zu beantworten, schließlich möchte ich für Schleife eine Funktion innerhalb der verwenden. Insbesondere:
# A FUNCTION THAT RETURNS THE TRANSITION PROBABILITIES AFTER N STEPS IN A MARKOV CHAIN
#-------------------------------------------------------------------------------------
R <- function(P, n){
if (n==1) return(P)
R(P, n-1) %*% P
}
# A ONE-STEP PROBABILITY MATRIX
#---------------------------------------------------------------------------------------
P = matrix(c(0.6, 0.1, 0.3, 0.2, 0.7, 0.1, 0.3, 0.3, 0.4), nrow = 3, byrow = TRUE)
# EXAMINING THE CONVERGENCE PROCESS OF THE PROBABILITIES OVER TIME
#########################################################################
T <- data.table(Init_1 = rep(0, 100), Init_2 = rep(0, 100))
for (i in 1:100){
T[, Init_1 := R(P, i)[1,1]]
T[, Init_2 := R(P, i)[2,1]]
}
oder
for (i in 1:100){
T[, ':=' (Init_1 = R(P, i)[1,1],
Init_2 = R(P, i)[2,1]) ]
}
Sie keine Zeilen anstelle in data.table hinzufügen können, finden Sie [hier] (http://stackoverflow.com/questions/16792001/add-a-row-by-reference-at-the- Ende eines Datentabellenobjekts) –
Was ist das: = für? – drbombe
In data.table: = ermöglicht das Hinzufügen/Aktualisieren von Spalten. Z.B. DT [, c ("V1", "V2"): = Liste (Runde (exp (V1), 2), LETTER [4: 6])] (aus "Der offizielle Spickzettel für den DataCamp Kurs") – rf7