如何迭代数据框中的列以更改其值
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"。
我的数据框如下所示:
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"。