我需要在我正在运行的某个文件中同时进行多次转换。 我不明白为什么两次转换会产生不同的输出。
给出
x = c(140,190,190,185,195,195,195,130,150,125,50,30,15,45,55)
y = c(150,195,190,190,190,200,195,140,30,20,125,25,45,65,70)
此,
locs <- data.frame(x=x,y=y)
...按预期工作,有两列名为x和y。但是,如果我执行以下操作
locs <- as.data.frame(x=x,y=y)
它只提供一列名为 x,但值 y 。为什么是这样?对于我正在运行的较大文件非常重要 - 我可能不得不改变整个方法。
答案 0 :(得分:1)
data.frame
以...
开头,data.frame(x = x, y = y)
通常填充“tag / value”对以组合为列。因此,as.data.frame
可以按预期工作。
data.frame
期望使用as.data.frame.*
方法之一将单个对象强制转换为...
。它还有一个as.data.frame
参数,但这用于将参数传递给不同的matrix
方法。
换句话说,如果您有m <- cbind(x, y)
(as.data.frame(m)
),则可以使用data.frame(x, y)
并获得预期的结果,但如果您从向量开始,则可能好吧,只做string xml = "<Request><Person xmlns='http://CompanyName.AppName.version1' uniqueID='3221'><AccountNo>83838</AccountNo><FirstName>Tom</FirstName><LastName>Jackson</LastName></Person><Person xmlns='http://CompanyName.AppName.version1' uniqueID='21132'><AccountNo>789875</AccountNo><FirstName>Chris</FirstName><LastName>Smith</LastName></Person></Request>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
XmlNodeList nodeList = xmlDoc.GetElementsByTagName("Person");
foreach (XmlNode node in nodeList)
{
Console.WriteLine(node.Attributes["uniqueID"].Value);
}
。