我在R中使用model.frame()
(在函数中使用)但我无法使用-
设法将某些变量排除在公式之外。
例如,在具有变量“y”,“x1”,“x2”和“x3”的数据框(数据)中,使用:
model.frame(y ~ . - x3, data)
我会得到一个包含所有“y”,“x1”,“x2”和“x3”的数据框。
有没有办法使用公式排除“x3”而不是直接删除变量,如:data[,-4]
?
答案 0 :(得分:4)
我无法弄清楚如何干净利落地做到这一点,但你可以通过几个步骤来做到这一点:
function load() {
try {
console.log("in load");
asyncRequest = new XMLHttpRequest();
asyncRequest.addEventListener("readystatechange", function() {
processResponse();
}, false);
asyncRequest.open('GET', 'Catalog.xml', true);
asyncRequest.send(null);
} catch (exception) {
alert("Request Failed");
console.log("failed");
}
}
function processResponse() {
console.log(asyncRequest.readyState + " response" + asyncRequest.status + asyncRequest.responseXML);
if (asyncRequest.readyState == 4 && asyncRequest.status == 200 && asyncRequest.responseXML) {
console.log("found");
var planets = asyncRequest.responseXML.getElementsByTagName("planet");
var name = document.getElementById("planetinfo").value;
console.log(name);
for (var i = 0; i < planets.length; ++i) {
var planet = planets.item(i);
var planetName = planet.getElementsByTagName("name").item(0).firstChild.nodeValue;
if (name == planetName) {
document.getElementById("name").innerHTML = planet.getElementsByTagName("name").item(0).firstChild.nodeValue;
document.getElementById("discovered").innerHTML = planet.getElementsByTagName("discovered").item(0).firstChild.nodeValue;
document.getElementById("distance").innerHTML = planet.getElementsByTagName("distance").item(0).firstChild.nodeValue;
document.getElementById("contact").innerHTML = planet.getElementsByTagName("contact").item(0).firstChild.nodeValue;
document.getElementById("image").innerHTML = "<img src='../images/" + planet.getElementsByTagName("image").item(0).firstChild.nodeValue + "' + '/ width = '250' height = '250'>";
}
}
}
}
在# example data
data <- data.frame(y=0,x1=1,x2=2,x3=3)
的上下文中获取完整展开的公式,然后移除data
:
x3