我正在尝试生成一个包含增加的反向系列的向量,例如1,2,1,3,2,1,4,3,2,1,5,4,3,2,1.
我尝试使用循环,但我不知道如何堆叠或连接结果.
for (i in 1:11)
{
x = rev(seq(i:1))
print(x)
}
[1] 1
[1] 2 1
[1] 3 2 1
[1] 4 3 2 1
[1] 5 4 3 2 1
[1] 6 5 4 3 2 1
[1] 7 6 5 4 3 2 1
[1] 8 7 6 5 4 3 2 1
[1] 9 8 7 6 5 4 3 2 1
[1] 10 9 8 7 6 5 4 3 2 1
[1] …Run Code Online (Sandbox Code Playgroud) 我想通过使用rep或任何其他函数在 R 中创建以下序列。
c(1, 2, 3, 4, 5, 2, 3, 4, 5, 3, 4, 5, 4, 5, 5)
Run Code Online (Sandbox Code Playgroud)
基本上,c(1:5, 2:5, 3:5, 4:5, 5:5)。
我试图计算多个列的中值,但我的数据有点时髦.它看起来像下面的例子.
library(data.table)
dt <- data.table("ID" = c(1,2,3,4),"none" = c(0,5,5,3),
"ten" = c(3,2,5,4),"twenty" = c(0,2,3,1))
ID none ten twenty
1: 1 0 3 0
2: 2 5 2 2
3: 3 5 5 3
4: 4 3 4 1
Run Code Online (Sandbox Code Playgroud)
在表中,列表示该值的出现次数.我想计算中位数.
例如,对于ID = 1
median(c(10, 10, 10))
Run Code Online (Sandbox Code Playgroud)
是我想要创建的计算.
对于ID = 2
median(c(0, 0, 0, 0, 0, 10, 10, 20, 20))
Run Code Online (Sandbox Code Playgroud)
我尝试过使用rep()并lapply()取得了非常有限的成功,并且已经就如何实现这一目标提供了明确的指导.我理解为喜欢rep()我将不得不硬编码我的价值重复(例如rep(0,2)或rep(10,2)),这是我所期望的.我正在努力创建一个包含每列重复的列表或向量.
我试图复制一个数据帧(动物园对象)50次作为一个整体,并将结果作为一个矩阵,但我尝试过的所有命令似乎都不成功.我可以轻松编写一个可以执行此操作的函数,但我希望结果可以轻松实现rep.
以下面的例子为例
x <- zoo(data.frame(A = c(1,2,3,4,5,6), B = c(7,8,9,10,11,12), C = c(13,14,15,16,17,18)), order.by = seq(as.Date("2012-01-01"), as.Date("2012-06-01"), by = "month"))
#> x
# A B C
#2012-01-01 1 7 13
#2012-02-01 2 8 14
#2012-03-01 3 9 15
#2012-04-01 4 10 16
#2012-05-01 5 11 17
#2012-06-01 6 12 18
Run Code Online (Sandbox Code Playgroud)
我们试着复制x2次.我要找的最终结果是:
# [,1] [,2] [,3]
# [1,] 1 7 13
# [2,] 2 8 14
# [3,] 3 9 15
# [4,] 4 10 16
# …Run Code Online (Sandbox Code Playgroud) X = 1:20
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
代表(X,2)
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
视图(REP(X,2))
使用R中的rep()函数生成20乘2向量时出现问题
而不是创建两个列,每个列从1到20运行,当我在R工作区中查看数据时,它显示为40X1向量,即1-20 1-20.
如何使用rep()函数创建20X2的重复列向量?谢谢.
在空的环境中开始新的R会话.使用一个参数编写一系列函数,该参数将用作times调用中参数的值rep().
f <- function(n) {
rep("hello", times = n)
}
f(x)
Run Code Online (Sandbox Code Playgroud)
人们期望这会失败,事实上会得到:
# Error in f(x) : object 'x' not found
Run Code Online (Sandbox Code Playgroud)
稍微修改一下这个功能:
f2 <- function(n) {
ls.str()
rep("hello", times = n)
}
f2(x)
Run Code Online (Sandbox Code Playgroud)
正如所料,它仍然失败:
# Error in f2(x) : object 'x' not found
Run Code Online (Sandbox Code Playgroud)
稍微修改一下(以查看控制台中的环境):
f3 <- function(n) {
print(ls.str())
rep("hello", times = n)
}
f3(x)
Run Code Online (Sandbox Code Playgroud)
我仍然期待失败,但反而得到:
## n : <missing>
## [1] "hello"
Run Code Online (Sandbox Code Playgroud)
这就好像将print()rep做的调用times设置为1一样.
我想从两个数字创建一个序列,这样一个数字的出现减少(从n_11到1),而另一个数字的出现被固定为n_2.
我一直在寻找并尝试使用seq和rep来做它,但我似乎无法弄明白.
下面是一个例子c(0,1)并且n_1=5,n_2=3:
0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,1,1,1
Run Code Online (Sandbox Code Playgroud)
而这里c(0,1)和n_1=2,n_2=1:
0,0,1,0,1
Run Code Online (Sandbox Code Playgroud) 当我表演时:
rep(1:4, rep(4,4))
Run Code Online (Sandbox Code Playgroud)
我明白了
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4
Run Code Online (Sandbox Code Playgroud)
这是预料之中的.但是当我尝试将长度固定为16(这是输出的长度)时,如下所示:
rep(1:4, rep(4,4), length.out = 16)
Run Code Online (Sandbox Code Playgroud)
我明白了
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
这很奇怪.我认为这两个命令都应该执行相同的功能.有人可以帮忙吗?
谢谢!
我是R的新手,我正在尝试将Excel中完成的计算复制到R.
我有一个这样的数据框:
Component <- c("A", "B", "C")
Report_Time <- c(5781, 5781, 5781)
Interval <- c(700, 600, 800)
End_Time <- c(8281, 8281, 8281)
Start_Time <- c(800, 298, 780)
df <- data.frame(Component, Report_Time, Interval, End_Time, Start_Time)
Run Code Online (Sandbox Code Playgroud)
印刷时它看起来像这样:
# Component Report_Time Interval End_Time Start_Time
#1 A 5781 700 8281 800
#2 B 5781 600 8281 298
#3 C 5781 800 8281 780
Run Code Online (Sandbox Code Playgroud)
对于每个组件,我想填充计算列"Interval_Time",它是First的开始时间+ Report_Time的总和,然后如果它小于End_Time,则插入一个具有Interval_Time(Last sum)+ Interval之和的行.重复插入,直到Interval time中的和小于End_Time.
# Component Report_Time Interval End_Time Start_Time Interval_Time
#1 A 5781 700 8281 800 6581
#2 A …Run Code Online (Sandbox Code Playgroud) 我有一个“大小”或“宽度”向量,如下所示:
x <- c(1, 4, 6, 10)
Run Code Online (Sandbox Code Playgroud)
我想创建另一个基于 的向量x,一个像这样的向量:
y <- c(" ", " ", " ", " ")
Run Code Online (Sandbox Code Playgroud)
基本上有两个用于创建的输入y:空白空间" "和向量x。
正如您所看到的,向量x定义了 中空格的长度y。我知道我可以从头开始创建一个函数,但我猜测 R 中是否存在某种函数或与rep或paste0其他内置函数的组合。
任何想法?谢谢。