我有一个数据框,看起来像:
ID A B
0 8 25
1 16 123
2 4 120
... ...
我现在要做的是例如迭代列'A'并使用单元格的值调用函数并将其返回到同一位置。
例如,像(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)
此外,我强烈建议谷歌搜索“R中的矢量化”。