有没有办法在文件中序列化HANDLE? 这是我的句柄:
# Create data and a formula data frame
x <- 10
y <- 5
forms <- c("x + y",
"x - y",
"x / y",
"x * y")
form_df <- as.data.frame(matrix(forms, nrow = 2, ncol = 2), stringsAsFactors = F)
# V1 V2
# 1 x + y x / y
# 2 x - y x * y
df1 <- data.frame(col1 = c(15,6), col2 = c(50,50))
# col1 col2
# 1 15 50
# 2 6 50
# Create a function that creates a data frame from this
dyndf <- function(x, y, df_old, form_df) {
df_new <- sapply(form_df,function(z1) sapply(z1, function(z2) eval(parse(text=z2))))
df_old[df_new != df_old] <- df_new[df_new != df_old]
df_old
}
dyndf(x,y,df1,form_df)
# col1 col2
# 1 15 2
# 2 5 50
我问这个,因为我只能打开一次管道。如果我可以在一个文件中编写Handle(并且不要关闭Handle)并在以后反序列化它,那么也许我可以在管道中多次写入。 我之前的问题如下:Writing mulitple times in a special (given) pipe C++
我已经尝试了以下内容,但在这里我有一个file_descriptor而不是File:
vec <- 1:5
forms <- c("1 + 1", "vec[1] + 2", "vec[1] * vec[2]", "vec[3] / vec[1]", "vec[5]")
for (i in 1:length(vec)) vec[i] <- eval(parse(text=forms[i]))
vec
# [1] 2 4 8 4 5
感谢您的帮助......