我正在尝试在 R 中将一个简单的常量添加到表的列中,例如
dim(exampletable)
[1] 3900 2
要在第二列上添加一个值,我所做的工作是:
newtable <- exampletable
for (i in 1:nrow(newtable)){newtable[i,2] <- exampletable[i,2] + constant}
但这似乎有点矫枉过正。说 sapply 有没有更优雅的方法呢?
谢谢,约翰内斯
我正在尝试在 R 中将一个简单的常量添加到表的列中,例如
dim(exampletable)
[1] 3900 2
要在第二列上添加一个值,我所做的工作是:
newtable <- exampletable
for (i in 1:nrow(newtable)){newtable[i,2] <- exampletable[i,2] + constant}
但这似乎有点矫枉过正。说 sapply 有没有更优雅的方法呢?
谢谢,约翰内斯
R 是矢量化的,并且对于在其他语言中往往更冗长的操作具有非常方便的语法。你所描述的可能是你想做的最糟糕的实现,几乎与 R 的对立面。相反,使用 R 的内置矢量化并过上幸福的长寿!
有很多方法可以做到这一点,但规范的方法(除了使用列索引整数而不是列名)是:
newtable[,2] <- newtable[,2] + constant
例如
df <- data.frame( x = 1:3 )
df$y <- df$x + 1
df
# x y
#1 1 2
#2 2 3
#3 3 4
我建议阅读 R 的基础知识。标签的信息页面上有几个很好的教程。r
试试这个:
#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
这是R语言的基础知识,阅读一些手册。