我有一个大数据框,其中有一列,具有一个组名,该组名与dplyr分组。因此,多行具有相同的组名。为了减少数据,我想从每个组的第一个元素中提取第n个元素。有没有循环的R方式吗?
用序列对每行进行子集化,存在经常丢失每个组的第一行的问题。例如
data[seq(1, nrow(data), 10), ] # Some groups start without the first row.
Run Code Online (Sandbox Code Playgroud)
输入:
Val Group
1 1.0 Fruit
2 2.0 Fruit
3 3.0 Fruit
4 1.5 Veg
5 2.8 Veg
6 4.2 Veg
7 5.1 Veg
Run Code Online (Sandbox Code Playgroud)
输出(第二个元素,请注意第三行!):
Val Group
1 1.0 Fruit
2 3.0 Fruit
**3 1.5 Veg**
4 4.2 Veg
Run Code Online (Sandbox Code Playgroud) 我正在尝试解析 XML 文件节点和属性。文件内有一组具有属性的节点。嵌套的 XML 结构类似于一个数据框架,其中包含一个“我想将其解析为数据框架”。
\n\n这是一个示例文件:
\n\n<?xml version="1.0" encoding="UTF-8"?>\n<TrackMate version="3.8.0">\n <Model spatialunits="\xc2\xb5m" timeunits="sec">\n <AllTracks>\n <Track name="Track_2" TRACK_ID="2" NUMBER_SPOTS="140" NUMBER_GAPS="0" >\n <Edge SPOT_SOURCE_ID="960769" SPOT_TARGET_ID="960778" LINK_COST="0.08756957830926632" />\n <Edge SPOT_SOURCE_ID="958304" SPOT_TARGET_ID="958308" LINK_COST="1.4003359672950089" />\n <Edge SPOT_SOURCE_ID="958316" SPOT_TARGET_ID="958322" LINK_COST="1.6985623204008202" />\n </Track>\n <Track name="Track_145" TRACK_ID="145" NUMBER_SPOTS="141" NUMBER_GAPS="0" >\n <Edge SPOT_SOURCE_ID="961623" SPOT_TARGET_ID="961628" LINK_COST="2.2678642015413755" />\n <Edge SPOT_SOURCE_ID="962122" SPOT_TARGET_ID="962127" LINK_COST="38.20777704254654" />\n <Edge SPOT_SOURCE_ID="961869" SPOT_TARGET_ID="961873" LINK_COST="0.2895609647324684" />\n </Track>\n </AllTracks>\n </Model>\n</TrackMate>\nRun Code Online (Sandbox Code Playgroud)\n\n我想创建一个具有所有边缘属性和父级 TRACK_ID 属性的数据框。我可以轻松地创建具有所有边缘属性的数据框:
\n\nedges = data.frame(t(data.frame(xml_attrs(xml_find_all(xmlDoc, xpath = paste0(\'/TrackMate/Model/AllTracks//Edge\'))))))\nrow.names(edges) = NULL\nRun Code Online (Sandbox Code Playgroud)\n\n但随后相应的轨道 ID 就会丢失。我可以用 for …