2013-06-25 7 views
-1

J'essaye dans R d'ajouter simplement une constante simple à une colonne d'une table avec par ex.R Liste/manipulation de table remplaçant "pour" boucle avec sapply?

dim(exampletable) 
[1] 3900 2 

pour ajouter une valeur à la deuxième colonne, ce que je fais et travaille est:

newtable <- exampletable 
for (i in 1:nrow(newtable)){newtable[i,2] <- exampletable[i,2] + constant} 

, mais cela semble un peu exagéré. Y a-t-il une façon plus élégante de le faire, par exemple?

Merci, Johannes

+0

Oui !!!! 'newtable [, 2] <- newtable [, 2] + constant' –

Répondre

3

R est vectorisée et a une syntaxe très pratique pour les opérations qui ont tendance à être plus bavard dans d'autres langues. Ce que vous avez décrit est peut-être le pire la mise en œuvre de ce que vous voulez faire, et à peu près l'antithèse de ce que R est à propos. Au lieu de cela, utilisez la vectorisation intégrée de R et vivez une longue vie heureuse!

Il y a tellement de façons de le faire, mais la manière canonique (à l'exception de l'utilisation des entiers d'index de colonne plutôt que les noms de colonnes) est:

newtable[,2] <- newtable[,2] + constant 

par exemple

df <- data.frame(x = 1:3) 
df$y <- df$x + 1 
df 
# x y 
#1 1 2 
#2 2 3 
#3 3 4 

Je recommande la lecture sur les bases de R. Il y a plusieurs bons tutoriels sur the info page de la balise r.

+0

je vous remercie pour la réponse, même si un merci très tard. C'est ce que je pensais que ça devrait ressembler plus! – joanwa

0

Essayez ceci:

#Dummy data 
exampletable <- data.frame(x=runif(3900), y=runif(3900)) 
#Define new constant 
MyConstant <- 10 
#Make newtable with MyConstant update 
newtable <- exampletable 
newtable$y <- newtable$y + MyConstant 

Ceci est essentiel du langage R, lire quelques manuels.