我刚刚发布了一个问题,询问如何将数据从长表重新整形为宽表.然后我发现这spread()是一个非常方便的功能.所以现在我需要在我之前的帖子上进一步开发.
我们假设我们有一个这样的表:
id1 | id2 | info | action_time | action_comment |
1 | a | info1 | time1 | comment1 |
1 | a | info1 | time2 | comment2 |
1 | a | info1 | time3 | comment3 |
2 | b | info2 | time4 | comment4 |
2 | b | info2 | time5 | comment5 |
Run Code Online (Sandbox Code Playgroud)
我想把它改成这样的东西:
id1 | id2 | info |action_time 1|action_comment1 |action_time 2|action_comment2 |action_time 3|action_comment3 |
1 …Run Code Online (Sandbox Code Playgroud) 嗨,我正在 Rstudio 中使用 xml。目标是将 xml 转换为 r 数据框,我正在尝试包文件夹中名为tides.xml 的示例数据。
tides = system.file("exampleData", "tides.xml", package = "XML")
Run Code Online (Sandbox Code Playgroud)
也许我们可以看到前几列中的项目是恒定的:
像这样的东西
origin
NOAA/NOS/CO-OPS
NOAA/NOS/CO-OPS
NOAA/NOS/CO-OPS
NOAA/NOS/CO-OPS
NOAA/NOS/CO-OPS
NOAA/NOS/CO-OPS
NOAA/NOS/CO-OPS
Run Code Online (Sandbox Code Playgroud)
因此当我使用
xmlToDataFrame(xmlRoot(tides.str))
Run Code Online (Sandbox Code Playgroud)
它返回错误:
Error in `[<-.data.frame`(`*tmp*`, i, names(nodes[[i]]), value = c("2010/11/13Sat06:08 AM4.74H", :
duplicate subscripts for columns
Run Code Online (Sandbox Code Playgroud)
我知道我可以做这样的事情:
xmlToDataFrame(nodes = xmlChildren(xmlRoot(tides.str)[["data"]]))
Run Code Online (Sandbox Code Playgroud)
生成数据框,但它只是一个子集,我需要手动插入前几列。
所以我在想有什么办法可以通过更改 xmlToDataFrame() 函数中的一些参数并使用整个 xml 数据来消除错误?
提前致谢。
嗨,目前我有一个像这样的样本数据集
df<- data.frame(site = c('A1', 'A1', 'A1', 'B1', 'B1','B1','B1','C1','C1'),
part = c('a1', 'a1', 'a2', 'b1', 'b1', 'b2','b3','c1','c2'),
value = c(2,3,4,5,6,7,8,9,10))
> df
site part value
A1 a1 2
A1 a1 3
A1 a2 4
B1 b1 5
B1 b1 6
B1 b2 7
B1 b3 8
C1 c1 9
C1 c2 10
Run Code Online (Sandbox Code Playgroud)
我想在两个选择框的闪亮用户界面中放置一个侧栏.一个是"选择"网站,另一个是"部分".
shinyUI(
fluidPage(
titlePanel("Choose Site, part"),
sidebarLayout(
sidebarPanel(
selectInput("select_site", label = "Select Site",
choices = unique(df$site),
selected = unique(df$site)[1]),
selectInput("select_part", label = "Select Part",
choices = unique(df$part),
selected …Run Code Online (Sandbox Code Playgroud) 最近我在R中使用data.table,它非常受欢迎和高效.目前我遇到了一个我认为可以使用data.table解决的问题.
我有这样的数据集:
event | group_ind
1 | group1
1 | group1
1 | group1
2 | group1
2 | group1
1 | group2
1 | group2
2 | group2
2 | group3
2 | group3
Run Code Online (Sandbox Code Playgroud)
现在我想知道每个组中事件1的百分比.该数据集的结果是显而易见的:第1组中的事件1为60%,第2组为67%,第3组为0.实际上,数据集具有超过2种事件类型的更多观察值,并且行不按特定顺序排序.我可以在R中以非常虚拟的方式得到我想要的东西(通过计算事件列中的出现次数除以每组中的总观察值),但我认为应该有更好的方式来做到这一点.
所以我想要的结果是这样的:
event | group_ind | percentage
1 | group1 | 0.6
2 | group1 | 0.4
1 | group2 | 0.67
2 | group2 | 0.33
1 | group3 | 0
2 | group3 | 100
Run Code Online (Sandbox Code Playgroud)
我希望这可以在data.table中完成.非常感谢您的帮助.
我在这里有一些字符串,它们是:
12ABC3, 2ABC45, ABC 56, uhyABC, REGEXP ...
Run Code Online (Sandbox Code Playgroud)
目标是只要字符串中有'ABC'(不是'BCA'或'BAC'),当使用'grepl'时它应该返回TRUE
所以输出应该是
TRUE, TRUE, TRUE, TRUE, FALSE
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我吗?
提前致谢
我正在学习在 Excel 中使用 SUMIF。通常在这个公式的第一个参数中是一个连续的范围(类似于 A1:F1)。但现在我真的需要选择这样的东西:A1、C1、E1 由于数据集格式。我可以在 Excel 中做这样的事情吗?甚至 VBA。我也尝试使用 INDIRECT 但它只允许我填写一行。如果我进行自动填充,行号不会改变。这是我使用的公式:
SUM((SUMIF(INDIRECT({"A1","C1","E1","G1","I1","K1","M1","O1","Q1","S1"}),"<"&V1,INDIRECT({"B1","D1","F1","H1","J1","L1","N1","P1","R1","T1"}))))
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何为整个专栏做到这一点?提前致谢!!!
我正在尝试在R中使用一个名为d3Network的包来可视化某些网络,我在R中使用了这个例子:
# Load data
data(MisLinks)
data(MisNodes)
# Create graph
d3ForceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
Group = "group", opacity = 0.4)
Run Code Online (Sandbox Code Playgroud)
它只给了我一堆脚本而不是一个情节.我在互联网上看到了这个例子,似乎其他人从未遇到过这种问题.我做错了什么或遗漏了什么?而且我想知道如何指定Source节点和Target节点的颜色.
提前致谢