मेरे पास डेटा का डेटा और फिट गुणांक का एक डाटाटेबल है। मैं प्रत्येक पंक्ति के लिए फिट मान की गणना करना चाहता हूं।आर डेटाटेबल डॉट उत्पाद मिलान कॉलम नामों (प्रत्येक समूह के लिए)
dt = data.table(a = rep(c("x","y"), each = 5), b = rnorm(10), c = rnorm(10), d = rnorm(10))
coefs = data.table(a = c("x","y"), b = c(0, 1), d = c(2,3))
dt
# a b c d
# 1: x -0.25174915 -0.2130797 -0.67909764
# 2: x -0.35569766 0.6014930 0.35201386
# 3: x -0.31600957 0.4398968 -1.15475814
# 4: x -0.54113762 -2.3497952 0.64503654
# 5: x 0.11227873 0.0233775 -0.96891456
# 6: y 1.24077566 -1.2843439 1.98883516
# 7: y -0.23819626 0.9950835 -0.17279980
# 8: y 1.49353589 0.3067897 -0.02592004
# 9: y 0.01033722 -0.5967766 -0.28536224
#10: y 0.69882444 0.8702424 1.24131062
coefs # NB no "c" column
# a b d
#1: x 0 2
#2: y 1 3
डीटी में प्रत्येक a=="x"
पंक्ति के लिए, मैं 0*b+2*d
चाहते हैं; और डीटी में प्रत्येक a=="y"
पंक्ति के लिए, मुझे 1*b+3*d
चाहिए।
कॉलम नाम हार्डकोड किए बिना ऐसा करने का कोई डेटाटेबल तरीका है? मुझे कॉलम नामों को एक चर cols = colnames(coefs)[-1]
में रखने में खुशी है।
समूह और rbind
पर लूप करना आसान है, इसलिए यदि समूह समस्या उत्पन्न कर रहा है, तो कृपया उस भाग को अनदेखा करें।
मेरा समान प्रश्न: http://stackoverflow.com/q/19279075/ इसके लायक होने के लिए, मुझे लगता है कि यह स्वाभाविक है कि कोई व्यक्ति गतिशील रूप से मिलान करने के बारे में चिंतित होगा, और यह इस सवाल को "चलती लक्ष्य" नहीं बनाता है " बिलकुल। – Frank