如何迭代数据框中的列以更改其值

How to Iterate over a column in a data frame to change its values

我的数据框如下所示:

ID     A     B    
 0     8    25  
 1    16   123  
 2     4   120  
...             ...

我现在想做的是迭代列 'A' 并在同一位置调用具有单元格值和 return 的函数。

例如像 (x^2)-1 这样的函数。

int calculation(int val){
   return val*val-1;
}

...code...

while(i<A.length){
  A[i] = calculation(A[i]);
}

所以结果应该是这样的。

ID     A     B    
 0    63    25  
 1   265   123  
 2    15   120  
...             ...




我是 R 的新手,如果您知道一些好的科学绘图基本指南或书籍,请告诉我。 :-)

感谢您的帮助。

这是 R 中非常简单的任务。

a<-c(8,16,4)
b<-c(25,123,120)
df<-data.frame(a,b)

calculation<-function(a){
  a^2-1
}


# Method 1
df$a<-(df$a^2)-1

# Method 2
df$a<-calculation(df$a)

这是使用您的 data.frame(例如 df)

的非常简单的示例
#Define your function as
calcualtion <- function(x){
  x*x - 1
}

#Suppose you want to call it on column A. Use sapply function as
df$A <- sapply(df$A, calcualtion)

result:
  ID   A
1  0  63
2  1 255
3  2  15

R 的美妙之处在于它的简单性。 如果您想对列 A 应用一些操作:

df[["A"]] = ((df[["A"]]*df[["A"]]) - 1) 

此外,我强烈建议使用谷歌搜索 "vectorization in R"。