dput(new)
structure(list(ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22), A1 = c(1, 1, 1, 1, 0,
0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), A2 = c(1,
1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
), A3 = c(0, 0, 0, 0, …Run Code Online (Sandbox Code Playgroud) 我有这个df:
dput(df)
structure(list(URLs = c("http://bursesvp.ro//portal/user/_/Banco_Votorantim_Cartoes/0-7f2f5cb67f1-22918b.html",
"http://46.165.216.78/.CartoesVotorantim/Usuarios/Cadastro/BV6102891782/",
"http://www.chalcedonyhotel.com/images/promoc/premiado.tam.fidelidade/",
"http://bmbt.ro/portal/a3/_Votorantim_/VotorantimCartoes2016/0-7f2f5cb67f1-22928b.html",
"http://voeazul.nl/azul/")), .Names = "URLs", row.names = c(NA,
-5L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
它描述了不同的URL,我试图计算主机名的字符数,无论是实际名称(http://hostname.com/...)还是IP(http://000.000.000.000)/..).但是,如果它是一个实际名称,那么我只想要www之间的nchar.和.com.如果它是IP,那么它的所有数字和"中间"点.
上述样本数据的预期结果:
exp_outcome
1 8
2 13
3 15
4 4
5 7
Run Code Online (Sandbox Code Playgroud)
我试图做一些strsplit但无法到达的地方.
让说我有一个数据帧df像
txt A1 A2 B1 B2
1 ala 6 9 12 23
2 ata 1 3 3 11
....
Run Code Online (Sandbox Code Playgroud)
我想dplyr用于根据一系列变量的总和过滤行。我试过:
filter(df, sum(A2:B1)>10)
Run Code Online (Sandbox Code Playgroud)
....但它不起作用。
任何人都可以提出解决方案dplyr吗?是的,我知道它可以通过简单的子集来完成。
我已经开始使用R data.table了,我正在尝试执行以下操作:为简单起见,我们假设我有一个ArticleReadings列表,如下所示:
UserID Time ArticleID Category NumOfReading
'aaa' 7:50 'x' 'sports' 1
'bbb' 5:05 'x' 'sports' 1
'aaa' 8:40 'y' 'politics' 2
'aaa' 10:00 'z' 'sports' 3
Run Code Online (Sandbox Code Playgroud)
最终我想要一个新列,其中包含特定用户读取的所有类别的列表.在这个例子中,用户'aaa'的值将是'politics','sports'的向量,对于用户'bbb',它将是一个带有一个元素的向量:'sports'.我想要这种类型的列,因为后来我想对它进行一些操作(例如计算模式/显性类别,或显示流行的类别组合),所以我想先为每个用户获取一个唯一的向量,然后解决.我的所有试验都具有列的新值等功能,导致为每个元素单独设置矢量值,而不是矢量作为列值....例如,我的一个试验:
CategoriesList <- function(x){sort(unique(x))}
DT[,':='(UniqueCats=CategoriesList(Category)),by=userID]
Run Code Online (Sandbox Code Playgroud)
由于我是data.table和R中的用户定义函数的新手,我想我错过了将结果传递给向量的一些关键点...任何帮助将不胜感激!
我尝试运行带虹膜数据集的样本行,给出对象'...'未找到错误.有什么我需要在我的环境中检查具体的吗?
library(plotly)
p <- plot_ly(iris, x = Petal.Length, y = Petal.Width,color = Species, mode = "markers")
Run Code Online (Sandbox Code Playgroud)
plot_ly中的错误(iris,x = Petal.Length,y = Petal.Width,color = Species,:object'Petal.Length'未找到
我想通过R中的ID为每个重复行分配值
df <- data.frame(ID=c(1,1,1,2,2,2,2,2,3,3,4),
Code = c("A","A","A","B","B","C","C","D","A","A","C"))
> df
ID Code
1 1 A
2 1 A
3 1 A
4 2 B
5 2 B
6 2 C
7 2 C
8 2 D
9 3 A
10 3 A
11 4 C
Run Code Online (Sandbox Code Playgroud)
我希望输出像这样,检查ID重复,然后分配第二个副本_1等等...
ID Code Code_n
1 1 A A
2 1 A A_1
3 1 A A_2
4 2 B B
5 2 B B_1
6 2 C C
7 2 C C_1
8 2 D D …Run Code Online (Sandbox Code Playgroud) 是否可以在 R 中创建一个按百分比增加值的序列?
例如:
需要从 10500 到大约 30000 的值序列,增加 1 %
所以 10500 之后的第一个值必须是10605,下一个是10711.5 .....
这在 R 中可以使用命令seq吗?或者可能有另一个功能?
就像是:
seq(10500,30000,1%)
Run Code Online (Sandbox Code Playgroud) 我有两个列表 m.list 和另一个 r.list。m.list 有NA值。对于那些有NA值的人,我想用 r.list 中的元素替换它。问题是当我replace在 R 中使用函数时,它采用 r.list 的索引并返回不正确的值。以下是可重现的示例。有没有办法根据另一个列表中的元素名称替换一个列表的值?
m.list <- list(a= 1,b=NA,c=3,d=NA)
r.list <- list(a= 4,d=8,c=9)
mr.list <- replace(m.list, which(is.na(m.list)), r.list[which(is.na(m.list))])
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出 b 应该是 NA 并且 d 应该是 8:
> mr.list
$a
[1] 1
$b
[1] 8
$c
[1] 3
$d
NULL
Run Code Online (Sandbox Code Playgroud)
这是所需的输出:
$a
[1] 1
$b
[1] NA
$c
[1] 3
$d
[1] 8
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,类似:
d <-
data.frame(
col1 = c(7, 8, 9),
col2 = c(12, 7, 0),
col3 = c(1, 2, 3)
)
Run Code Online (Sandbox Code Playgroud)
和向量与数字
coefs <-
c(
col1 = 4,
col2 = 6
)
Run Code Online (Sandbox Code Playgroud)
我需要实现的是如果df中的列名等于向量列,那么我想将其乘以。如果列名不同,丢失或不相等,则应保持不变。
例如,对于上述数据帧和向量,结果应为:
result <-
data.frame(
col1 = c(28, 32, 36),
col2 = c(72, 42, 0),
col3 - c(1, 2, 3)
)
Run Code Online (Sandbox Code Playgroud)
我认为最好的方法是使用mutate_if,但是我不确定如何匹配列名。
我有一个数据框
df <- data.frame(
"Quarter" = c("Q1 2019","Q1 2019","Q1 2019","Q2 2019","Q2 2019","Q2 2019","Q2 2019","Q3 2019","Q3 2019","Q3 2019","Q3 2019","Q4 2019","Q4 2019"),
"Name" = c("Ram","John","Jack","Ram","Rach","Will","John","Ram","Rach","Will","John","Rach","John"),
stringsAsFactors = FALSE
)
Run Code Online (Sandbox Code Playgroud)
我需要通过与上一季度的比较来计算每个季度添加和离开的人数。
预期的输出是
quarterYear status Count
1 Q1 2019 Added 3
2 Q1 2019 Left 0
3 Q2 2019 Added 2
4 Q2 2019 Left 1
5 Q3 2019 Added 0
6 Q3 2019 Left 0
7 Q4 2019 Added 0
8 Q4 2019 Left 2
Run Code Online (Sandbox Code Playgroud)
我不确定如何比较两组并获得计数。
如何在 R 中实现预期输出?