我有一个字符串"ECET",我想创建所有可能的字符串,我用"X"替换一个或多个字母(除了第一个之外).
所以在这种情况下我的结果是:
> result
[1] "EXET" "ECXT" "ECEX" "EXXT" "EXEX" "ECXX" "EXXX"
Run Code Online (Sandbox Code Playgroud)
关于如何处理这个问题的任何想法?
这不仅可以创建"X"的可能组合/排列,还可以创建如何将它们与现有字符串组合.
我有一个data.table:
groups <- data.table(group = c("A", "B", "C", "D", "E", "F", "G"),
code_1 = c(2,2,2,7,8,NA,5),
code_2 = c(NA,3,NA,3,NA,NA,2),
code_3 = c(4,1,1,4,4,1,8))
group code_1 code_2 code_3
A 2 NA 4
B 2 3 1
C 2 NA 1
D 7 3 4
E 8 NA 4
F NA NA 1
G 5 2 8
Run Code Online (Sandbox Code Playgroud)
我想要实现的是让每个组根据可用代码找到直接邻居。例如:A 组由于 code_1 具有直接邻居组 B、C(code_1 在所有组中等于 2)并且由于 code_3 具有直接邻居组 D、E(在所有这些组中 code_3 等于 4)。
我尝试的是针对每个代码,根据匹配对第一列(组)进行子集化,如下所示:
groups$code_1_match = list()
for (row in 1:nrow(groups)){
set(groups, i=row, j="code_1_match", list(groups$group[groups$code_1[row] …Run Code Online (Sandbox Code Playgroud) 我有两个字符串:
x1 = "03011000"
x2 = "13001000"
Run Code Online (Sandbox Code Playgroud)
字符串在非零字符中具有精确重叠.我想为每个角色位置获取最大元素.所以在这种情况下,结果将是:
result = "13011000"
Run Code Online (Sandbox Code Playgroud)
第一个字符是1,因为x2在第一个位置有1.第四个字符也是1,因为x1在此位置有1.我的方式如下:
paste0(mapply(pmax, strsplit(x1, ""), strsplit(x2, "")), collapse = "")
Run Code Online (Sandbox Code Playgroud)
但这似乎过分了,因为我必须将每个角色分成它们的组件并进行比较.有更好的方法吗?
我有以下数据表:
library(data.table)
dat = data.table(j = c(3,8,9,11,10,28), gr = c(9,9,9,9,10,10))
> dat
j gr
1: 3 9
2: 8 9
3: 9 9
4: 11 9
5: 10 10
6: 28 10
Run Code Online (Sandbox Code Playgroud)
有两个组(由 'gr' 指定)并且它们是有序的。现在我想要实现的是为每组的每一行创建一个累积向量值在 'j' 中。结果应该是一list列,如下所示:
res_dat = data.table(j = c(3,8,9,11,10,28), gr = c(9,9,9,9,10,10),
res = list(3, c(3,8), c(3,8,9), c(3,8,9,11),
10, c(10, 28)))
> res_dat
j gr res
1: 3 9 3
2: 8 9 3,8
3: 9 9 3,8,9
4: 11 9 3, 8, 9,11
5: …Run Code Online (Sandbox Code Playgroud) 我一直在使用该tsibble包,但我不知道如何从聚合结果中删除时间分量的正确方法。因此,在下面的数据集中,我想要按地区和州划分的平均行程。tsibble将 转换为 a 的正确方法是tibble(可能是,我只是不确定)还是我缺少一些选项来实现聚合?
library(tsibble)
library(dplyr)
tourism %>% group_by(Region, State) %>% summarise(Mean_trips = mean(Trips))
# A tsibble: 6,080 x 4 [1Q]
# Key: Region, State [76]
# Groups: Region [76]
Region State Quarter Mean_trips
<chr> <chr> <qtr> <dbl>
1 Adelaide South Australia 1998 Q1 165.
2 Adelaide South Australia 1998 Q2 112.
3 Adelaide South Australia 1998 Q3 148.
## This is not what I want, this is what I want:
tourism %>% as_tibble …Run Code Online (Sandbox Code Playgroud) 我有一个数据表,其中包含以下类型的多个列:
attr1 attr2
1: 01001 01000
2: 11000 10000
3: 00100 00100
4: 01100 01000
DT = setDT(structure(list(attr1 = c("01001", "11000", "00100", "01100"),
attr2 = c("01000", "10000", "00100", "01000")), .Names = c("attr1",
"attr2"), row.names = c(NA, -4L), class = "data.frame"))
Run Code Online (Sandbox Code Playgroud)
所有列都是字符串而不是数字.我想要实现的目标如下:
1)我想找到attr1字符串中出现"1"的位置
2)在这些位置取attr2的值
我在这种情况下的结果是:
[1] "10" "10" "1" "10"
Run Code Online (Sandbox Code Playgroud)
作为第一行中的示例,attr1在位置2和5中具有"1",I在位置2和5中的第一行attr2并且以"10"结束.
我想要做的就是对列进行修改,然后使用它,但我真的希望有更好的方法.
我承认问题的标题有点神秘,但请耐心等待.我有两个数据表,一个小,一个非常大,包含无用的信息.
第一个数据集(dt1)采用以下格式:
CG MG1 MG2
1: 49693 914569 4417756
2: 50422 22514 31343
3: 90543 90544 4531361
4: 142864 143471 143806
5: 386093 2149 4149104
6: 2674708 23921 24327
Run Code Online (Sandbox Code Playgroud)
所以它只包含数字,其中一些可以在第二个数据表中找到.第二个数据表(dt2)包含许多字段,但我需要的是ID.
ID
1: 49693
2: 49693
3: 49693
4: 49693
5: 49693
6: 2674708
7: 2679818
8: 2680618
9: 49693
10: 2695042
Run Code Online (Sandbox Code Playgroud)
我想要做的是在dt1中再添加3个列,每个列指定dt2中是否有超过5行,ID分别等于CG1,MG1,MG2.我的最终结果将是:
CG MG1 MG2 CG_OK MG1_OK MG2_OK
1: 49693 914569 4417756 1 0 0
2: 50422 22514 31343 0 0 0
3: 90543 90544 4531361 0 0 0
4: …Run Code Online (Sandbox Code Playgroud) 我正在制作一个 Sankey 图表,我想在每列的顶部添加文本,以便简要说明所显示的内容。来自 r-graph galery 的示例代码:
library(networkD3)
# A connection data frame is a list of flows with intensity for each flow
links <- data.frame(
source=c("group_A","group_A", "group_B", "group_C", "group_C", "group_E"),
target=c("group_C","group_D", "group_E", "group_F", "group_G", "group_H"),
value=c(2,3, 2, 3, 1, 3)
)
# From these flows we need to create a node data frame: it lists every entities involved in the flow
nodes <- data.frame(
name = unique(c(as.character(links$source), as.character(links$target)))
)
# With networkD3, connection must be provided using id, not using …Run Code Online (Sandbox Code Playgroud) r ×8
data.table ×4
combinations ×1
d3.js ×1
dplyr ×1
htmlwidgets ×1
igraph ×1
networkd3 ×1
string ×1
stringr ×1
tibble ×1
tsibble ×1