0 Câu hỏi: Làm cách nào tôi có thể tạo một khung dữ liệu bằng Hàm từ các vectơ?

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang cố gắng tạo Khung dữ liệu bằng Hàm. Hàm này dựa trên ba vectơ khác nhau (Tol, Bzn, mXyl) liên quan đến 101 bước sóng hấp thụ. Tôi muốn nhân với các nồng độ khác nhau và kết quả là lưu trữ nó trong một khung dữ liệu.

Tôi đã tạo một mã đơn giản (tôi biết tôi có thể tạo mã đó bằng các hàm lịch sự khác nhưng tôi hơi chủ yếu trong R) tạo ra 27 hàng kết hợp khác nhau giữa các nồng độ cho mỗi vectơ. Vì vậy, 27 hàng này phải là các hàng khung dữ liệu và mỗi cột sẽ phải là mỗi bước sóng được lưu trữ trong các vectơ. (Bước sóng là các biến)

làm ví dụ về cấu trúc của vectơ Tol (Bzn và mXyl tương tự nhau):

str(Tol)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   1 obs. of  101 variables:

$ nm200: num 8.13

$ nm201: num 8.3

$ nm202: num 8.47

$ nm203: num 8.69

$ nm204: num 8.91

(...) Có 200 đến 300 bước sóng. Bạn có thể hình dung nó!

$ nm294: num 0

$ nm295: num 0

$ nm296: num 0

$ nm297: num 0

$ nm298: num 0

Và chức năng nhỏ (và đầu tiên) của tôi được tạo bằng R:

Con1 = 1

Con2 = 2

Con3 = 3

mat_cont <- function(Tol, Bzn, mXyl,Con1,Con2, Con3){

n1  <-  0    * (Tol*Con1) +  0   * (Bzn*Con2)  +  0   * (mXyl*Con3)

n2  <-  0    * (Tol*Con1) +  0   * (Bzn*Con2)  +  0.5 * (mXyl*Con3)

n3  <-  0    * (Tol*Con1) +  0   * (Bzn*Con2)  +  1   * (mXyl*Con3)

n4  <-  0    * (Tol*Con1) +  0.5 * (Bzn*Con2)  +  0   * (mXyl*Con3)

n5  <-  0    * (Tol*Con1) +  1   * (Bzn*Con2)  +  0   * (mXyl*Con3)

n6  <-  0    * (Tol*Con1) +  0.5 * (Bzn*Con2)  +  0.5 * (mXyl*Con3)

n7  <-  0    * (Tol*Con1) +  0.5 * (Bzn*Con2)  +  1   * (mXyl*Con3)

n8  <-  0    * (Tol*Con1) +  1   * (Bzn*Con2)  +  0.5 * (mXyl*Con3)

n9  <-  0    * (Tol*Con1) +  1   * (Bzn*Con2)  +  1   * (mXyl*Con3)

n10 <-  0.5  * (Tol*Con1) +  0   * (Bzn*Con2)  +  0   * (mXyl*Con3)

(...)

n25 <-  1    * (Tol*Con1) +  0.5 * (Bzn*Con2)  +  1   * (mXyl*Con3)

n26 <-  1    * (Tol*Con1) +  1   * (Bzn*Con2)  +  0.5 * (mXyl*Con3)

n27 <-  1    * (Tol*Con1) +  1   * (Bzn*Con2)  +  1   * (mXyl*Con3)

result <- (data.frame(??????)


return(result)

}

Tôi muốn có một khung dữ liệu như thế, với tên của các cột là nm200, nm201, nm202, nm203 ...:

n1   val1   val2   val3   val4   val5   val6   val7   val8   val9 (...)

n2   val1   val2   val3   val4   val5   val6   val7   val8   val9 (...)

n3   val1   val2   val3   val4   val5   val6   val7   val8   val9 (...)

n4   val1   val2   val3   val4   val5   val6   val7   val8   val9 (...)

n5   val1   val2   val3   val4   val5   val6   val7   val8   val9 (...)

(...)

n26   val1   val2   val3   val4   val5   val6   val7   val8   val9 (...)

n27   val1   val2   val3   val4   val5   val6   val7   val8   val9 (...)

Cảm ơn bạn rất nhiều vì sự giúp đỡ không thể chối cãi của bạn!

    
1
  1. ghi data.frame (n1, n2, ... n26, n27) và các vectơ của bạn sẽ trở thành data.frame
    2019-05-08 14: 00: 11Z
  2. Tôi vừa thử câu trả lời đó. Kết quả là một khung dữ liệu với 1 hàng và 2700 cột ...
    2019-05-08 14: 13: 04Z
  3. bạn có thể cung cấp cho chúng tôi một số dữ liệu để làm việc không?
    2019-05-08 14: 25: 14Z
  4. @ user1945827 Tôi không biết làm cách nào tôi có thể hợp nhất các vectơ của công việc của mình
    2019-05-08 14: 40: 26Z
  5. Tôi vẫn chưa rõ về những gì bạn đang cố gắng làm. Làm nền, tôi nghĩ rằng bạn có ba giải pháp khác nhau ... toluene, benzen và meta-xylene. Có lẽ bạn đã chạy một số loại quang phổ (uv?) Để đưa ra một vectơ giá trị độ hấp thụ. Và sau đó thì sao ...?
    2019-05-08 15: 09: 07Z
0 Câu trả lời                              0                         
nguồn đặt đây