我有一個包含許多參數的數據框。爲了方便起見,我用3列做了一個例子。第一個由單位組成,第二個由給定的參數組成,第三個由計算的數字組成。我想要的是: - 一個合適的方式來存儲單位和數字 - 一個功能,使表變化的參數(如第二個例子,風速3和4米/秒)。添加一個可以同時改變參數windspeed和density的函數會很酷。 現在我有一些有效的代碼。不幸的是我必須逐行處理它。對於20種不同的風速,我認爲這是很多不必要的工作。使用函數計算(錯誤:找不到對象)
aa <- as.data.frame(matrix(seq(100),nrow=6,ncol=3))
aa$V1 <- c("v (m/s)","Cd()", "d (m)", "A (m^2)", "N/(W*L)", "V(m/s)")
aa$V2 <- c("1", # v
"2", # Cd
"3", # d
"4", # MW/km^2
"5", # Height
"6" # coefficient
)
aa$V3[1] <- as.numeric(as.numeric(aa[4,2])^2)
aa$V3[2] <- as.numeric(as.numeric(aa[1,2]) + as.numeric(aa[2,2]))
aa$V3[3] <- as.numeric(as.numeric(aa[1,2]) * as.numeric(aa[2,2]))
aa$V3[4] <- as.numeric(as.numeric(aa[1,2]) + as.numeric(aa[2,2]) +
as.numeric(aa[3,2]))
aa$V3[5] <- as.numeric(as.numeric(aa[2,2]) + as.numeric(aa[2,3]))
aa$V3[6] <- as.numeric(as.numeric(aa[1,3]) + as.numeric(aa[2,3]))
我已經得到我想要的東西是這樣的:
speed_vector <- c("w_sp_3" = 3, "w_sp_4" = 4)
make_speed <- function(x)
{
V1 <- c("v (m/s)","density (kg/m^3)","Cd()", "d (m)", "A (m^2)", "N/(W*L)",
"V(m/s)")
V2 <- c(speed_vector[x], # v
"1", # density
"2", # Cd
"3", # d
"4", # MW/km^2
"5", # Height
"6" # coefficient
)
V3 <- c(as.numeric(as.numeric(V2[4])^2),
as.numeric(as.numeric(V2[1]) + as.numeric(V2[2])),
as.numeric(as.numeric(V2[1]) * as.numeric(V2[2])),
as.numeric(as.numeric(V2[1]) + as.numeric(V2[2]) + as.numeric(V2[3])),
as.numeric(as.numeric(V2[2]) + as.numeric(V3[2])),
as.numeric(as.numeric(V3[1]) + as.numeric(V3[2])))
zz <- data.frame(V1,V2,V3)
return(zz)
}
w_speed_3 <- make_speed("w_sp_3")
w_speed_4 <- make_speed("w_sp_4")
現在我得到如下:
"Error in make_speed("w_sp_3") : object 'V3' not found".
請幫我發現其中的錯誤。
我真的不明白你正在試圖做的,所以我不能多幫什麼,但在你的'make_speed'功能創建V3'的'你是指到最後兩行中的'V3'。 'V3'尚未定義,因此無法找到並且出現錯誤。 –
是的,在您分配V3時,您正在參考V3。 – Balter
@OriolMirosa:謝謝你的回答。我只是嘗試使用更改的參數進行計算,並將其存儲在列表,data.frame或類似的東西中。 – Baldrian