小编Mat*_*ina的帖子

按因子对数据框列进行排序

我有一个3列(name,, )的数据框y,sex其中name是字符,y是一个数值,sex是一个因子.

sex<-c("M","M","F","M","F","M","M","M","F")
x<-c("MARK","TOM","SUSAN","LARRY","EMMA","LEONARD","TIM","MATT","VIOLET")
name<-as.character(x)
y<-rnorm(9,8,1)
score<-data.frame(x,y,sex)
score
     name      y     sex
1    MARK  6.767086   M
2     TOM  7.613928   M
3   SUSAN  7.447405   F
4   LARRY  8.040069   M
5    EMMA  8.306875   F
6 LEONARD  8.697268   M
7     TIM 10.385221   M
8    MATT  7.497702   M
9  VIOLET 10.177969   F
Run Code Online (Sandbox Code Playgroud)

如果我想订购,y我会使用:

score[order(score$y),]
        x         y sex
1    MARK  6.767086   M
3   SUSAN  7.447405   F
8    MATT  7.497702   M
2     TOM …
Run Code Online (Sandbox Code Playgroud)

sorting r r-factor

16
推荐指数
2
解决办法
5万
查看次数

带有重复列名称的整洁data.frame

我有一个程序,以这种格式给我数据

toy
                file_path Condition Trial.Num A B  C  ID A B  C   ID  A B  C    ID
1     root/some.extension  Baseline         1 2 3  5 car 2 1  7 bike  4 9  0 plane
2    root/thing.extension  Baseline         2 3 6 45 car 5 4  4 bike  9 5  4 plane
3     root/else.extension  Baseline         3 4 4  6 car 7 5  4 bike 68 7 56 plane
4 root/uniquely.extension Treatment         1 5 3  7 car 1 7 37 bike  9 8  7 …
Run Code Online (Sandbox Code Playgroud)

r reshape dataframe reshape2 tidyr

11
推荐指数
1
解决办法
749
查看次数

Matlab - 迭代地将行插入/追加到矩阵中

如何在matlab中我可以用行交互式附加矩阵?

例如,假设我有空矩阵:

m = [];
Run Code Online (Sandbox Code Playgroud)

当我运行for循环时,我得到了需要插入矩阵的行.

例如:

for i=1:5
  row = v - x; % for example getting 1 2 3
  % m.append(row)?
end
Run Code Online (Sandbox Code Playgroud)

所以插入后应该看起来像:

m = [
     1 2 3
     3 2 1
     1 2 3
     4 3 2
     1 1 1
]
Run Code Online (Sandbox Code Playgroud)

在大多数编程语言中,您只需将行附加到数组/矩阵中即可.但我觉得很难在matlab中做到这一点.

matlab for-loop insert rows matrix

9
推荐指数
1
解决办法
6万
查看次数

guidata没有在MATLAB GUI中更新

我有一个MATLAB GUI:
1)由activex控制的VLC窗口.
2)一组单选按钮,用于"注释"特定帧上的视频.

我有工作代码,但我错过了为注释调用的函数的输出.此函数Annotate应将带注释的值替换为先前创建的表final_data.我可以将替换值显示到控制台,我希望guidata更新handles,因此我的main函数的输出应包含一个.final_data具有更新值的字段.但是,调用.final_data输出对象将返回空占位符值.

function Annotate(varargin)

    hFigure = findobj('tag', 'VideoPlay');
    handles = guidata(hFigure);

    % change value of the orther button to 0
    set(handles.hNotAnnotateButton, 'Value', 0);

    mypos = handles.vlc.input.Position; % >> proxy to calculate frame
    behavior = handles.Behavior;  % >>> Tag to be annotated

    % Calculate frame
    myframe = ceil(handles.vlc.input.Time/1000 * handles.frameRate) - 1;

    handles.final_data.behavior(myframe) = behavior;

    display(handles.final_data(myframe, :)) % displays properly

    guidata(handles.hFigure, handles) % not …
Run Code Online (Sandbox Code Playgroud)

video matlab activex matlab-guide

8
推荐指数
1
解决办法
244
查看次数

四开演示文稿中图像的垂直对齐

我正在使用带有revealjs格式的四开演示文稿。我可以像这样将图像设置为水平居中

![](img/path_to_img.svg){fig-align="center" height="200"}
Run Code Online (Sandbox Code Playgroud)

我试图让图形垂直居中对齐,但我找不到方法。如果我尝试通过将类更改为 来调整幻灯片的 css .center,它确实会将内容垂直居中,但它会居中所有内容而不仅仅是图像。

如何使图像垂直居中?

我尝试过的事情:

  • 添加style="padding-top: 150px;有助于使其居中,但很引人注目
  • 添加vertical-align: middle;似乎不起作用

css r reveal.js quarto

8
推荐指数
1
解决办法
4183
查看次数

ggplot2:将各个facet_wrap facet保存为单独的绘图对象

我是粉丝facet_wrap.虽然快速分割大数据框并绘制几个图并在R中进行探索,但它并不总是用于纸张或功率点的最佳工具.我发现自己在缩放比例,宽度和字体大小方面浪费了大量时间,并最终修改了情节.

有时我只是将我的数据框子集成到许多数据框中,并为每个数据框单独绘制.之后multiplot用手或手工加入.

我想知道是否有一种方法可以使ggplot调用几乎以相同的方式(一个大的df与一个用于分面的因子列)或一种方法来使ggplot从具有类似列表的数据帧的东西中读取因子.理想的输出应该是多个单个图,稍后我会在inkscape上编辑(并使用free_y刻度来减少痛苦)

要清楚,

df<-mtcars
ggplot(df,aes(df$mpg,df$disp,color=factor(cyl)))+
    geom_point(aes(df$mpg,df$disp))+
    facet_wrap( ~cyl)
Run Code Online (Sandbox Code Playgroud)

制作一个情节.在这种情况下,我想要的输出是三个图,每个面一个.

plot r ggplot2

6
推荐指数
1
解决办法
3856
查看次数

叠加密度图不包括直方图值

我想将密度曲线叠加到我构造的频率直方图上.对于我使用的频率直方图,aes(y=..counts../40)因为40是我的总样本数.aes(y=..density..*0.1)因为我的binwidth是0.1,我曾经强迫密度介于0和1之间.但是,密度曲线不适合我的数据,它排除了等于1.0的值(注意直方图显示bin =(1.0,1.1)的累积值,但密度曲线结束于1.0)

这是我的数据

data<-structure(list(variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, …
Run Code Online (Sandbox Code Playgroud)

r frequency ggplot2 kernel-density

5
推荐指数
1
解决办法
606
查看次数

未找到geom_rect()主变量

我想用我的ggplot绘制矩形"阴影".ggplot代码工作并提供如下所示的图像.我在这里查找信息并构建了x和y值的数据框.

mydf<-data.frame(tiempo=df5$tiempo,vel=df5$TR2x45.17)[1:14,]
structure(list(tiempo = c(618.2, 618.4, 618.6, 618.8, 619, 619.2, 
619.4, 619.6, 619.8, 620, 620.2, 620.4, 620.6, 620.8), vel = c(0, 
0, -4, -9, 5, 9, 1, 4, 0, 0, -1, -4, 0, 1)), .Names = c("tiempo", 
"vel"), row.names = c(NA, 14L), class = "data.frame")

rects <- data.frame(xstart = seq(618,619.5,.5), xend = seq(618.5,620,.5), col = letters[1:4])

ggplot(data=mydf,
       aes(x=tiempo,y=vel))+theme_minimal()+
           geom_point(size=4)+
    labs(title=c("Velocidad ejemplo pasaje figura"))+
       geom_smooth(method="loess", span=.3, se=FALSE, colour="red", size=1,alpha=0.5) +
geom_rect(data = rects, aes(xmin = xstart, xmax = xend, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
1
解决办法
270
查看次数

在R中为字母数字字符串添加数字的有效方法

我有一个data.frame由字母数字字符序列组成的id(例如id = c(A001, A002, B013)).我正在寻找一个简单的函数stringr或者stirngi很容易用这个字符串做数学运算(id + 1应该返回c(A002, A003, B014)).

我做了一个自定义函数来完成这个技巧,但是我觉得必须有一个更好/更有效/内部包的方式来实现这一点.

str_add_n <- function(df, string, n, width=3){

  string <- enquo(string)

  ## split the string using pattern
df <-  df %>%
    separate(!!string,
             into = c("text", "num"), 
             sep = "(?<=[A-Za-z])(?=[0-9])",
             remove=FALSE
    ) %>%
    mutate(num = as.numeric(num),
           num = num + n,
           num = stringr::str_pad(as.character(num),
                                  width = width,
                                  side = "left",
                                  pad = 0 
                                  )
           ) %>%
    unite(next_string, text:num, sep = "")


return(df)  
} …
Run Code Online (Sandbox Code Playgroud)

string r stringr tidyr

5
推荐指数
2
解决办法
91
查看次数

使用新参数安排python脚本重新启动或对象重新初始化

我有一个程序可以 24/7 全天候运行,从相机获取帧,通过本地网络处理和发送 .jpg 图像。通常,我不希望将任何视频保存到文件中,但是我可能希望在某些情况下安排 x 分钟的保存时间(未触发,已安排)。

我通过调用 VideoWriter 作为 VideoCamera 的线程来处理视频录制。我发现这对于使用正确的 fps 处理写作更准确。当我想从头开始录制以及只想流式传输时,此过程非常有效。我是这样启动相机的。

import ...
# from custom file import `VideoCamera` which has access to `VideoWriter`
from camera import VideoCamera

video_camera = VideoCamera(
    flip = False, 
    usePiCamera = False, 
    resolution = (640, 480),
    record = False,
    record_duration = None,
    record_timestamp = True
    ) 
Run Code Online (Sandbox Code Playgroud)

相机不能被初始化两次(不能访问同一个相机两次)。因此,我正在考虑使用新参数(例如record = True, record_duration = "00:10:00")安排停止和重新启动。

我从控制台 ( python main.py)调用脚本,它具有:

if __name__ == '__main__':
    t = threading.Thread(target=processing_fun, args=())
    t.daemon = True
    t.start()
    print("To …
Run Code Online (Sandbox Code Playgroud)

python bash subprocess scheduled-tasks

5
推荐指数
1
解决办法
869
查看次数