-1

我正在尝试在 R 中将一个简单的常量添加到表的列中,例如

dim(exampletable)
[1] 3900    2

要在第二列上添加一个值,我所做的工作是:

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

但这似乎有点矫枉过正。说 sapply 有没有更优雅的方法呢?

谢谢,约翰内斯

4

2 回答 2

3

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

于 2013-06-25T09:53:29.403 回答
0

试试这个:

#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语言的基础知识,阅读一些手册。

于 2013-06-25T10:00:08.537 回答