我试图从我的数据中得到一个特定的对角线。这是我的代码:
import * as firebase from "firebase"
import 'firebase/firestore'
import 'firebase-functions'
require('dotenv').config()
var config = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
storageBucket: process.env.REACT_APP_FIREBAES_STORAGE_BUCKET,
databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID
};
// Firebase is being initialized
let fb = firebase.initializeApp(config);
// Firestore is also working
let firestore = firebase.firestore()
// But when I tried to initiate functions it is failing
let functions = firebase.functions()
我们如何得到对角线65,90,55?
我已经使用了a2008=c(30,50,65)
a2009=c(40,90,NA)
a2010=c(55,NA,NA)
mydata=rbind(a2008,a2009,a2010)
mydata
[,1] [,2] [,3]
a2008 30 50 65
a2009 40 90 NA
a2010 55 NA NA
函数,但我得到了diag
。
一些帮助将不胜感激
答案 0 :(得分:2)
在调用curl -v -X POST -H 'Content-type: application/x-www-form-urlencoded' -d '@data.txt' '/echo/form'
之前,您可以通过翻转矩阵来获得对角线:
diag
执行diag(mydata[ , 3:1]) # [1] 65 90 55
会以相反的顺序索引矩阵的列。
答案 1 :(得分:2)
这是一个矩阵,而不是数据框。哪个好!数据框的对角线没有多大意义。我会这样做:
>>> fib(5)
5
>>> fib.call_count
30
您可以使用矩阵来索引矩阵,这就是说您需要第1,2,3行和第3列,第2列的值。
答案 2 :(得分:2)
您可以尝试通过
获得反对角线diag(mydata[,nrow(mydata):1])
[1] 65 90 55
或
diag(as.matrix(rev(as.data.frame(mydata))))
答案 3 :(得分:2)
要获得主要的反对角线,你可以这样做。 (rev
获得订单)
mydata[row(mydata) + col(mydata) == ncol(mydata) + 1]
您可以使用
获得低于该对角线的对角线mydata[row(mydata) + col(mydata) == ncol(mydata) + 2]
等等
答案 4 :(得分:1)
您可以通过首先翻转矩阵并找到对角线来实现此目的。那是
diag(apply(mydata, 1, rev))
我希望这有帮助!