小编use*_*650的帖子

R Lavaan编码潜在变量相互作用

谁能告诉我如何在lavaan结构方程式模型的包装的模型声明中编码潜在变量的相互作用?

假设我有潜在变量L1和一些观察变量F1,并且想对它们对某些结果的交互作用进行编码Y

L1 =~ x1 + x2

Y ~ L1 * F1 
Run Code Online (Sandbox Code Playgroud)

这行不通。

提前致谢!

r r-lavaan

4
推荐指数
1
解决办法
3058
查看次数

苦苦挣扎创造差异化功能

所以我有一个功课问题,我真的很难在R中编码.

这就是问题:编写一个函数difference(),它将一个向量X作为参数,并返回每个元素和下一个元素之间差异的向量: X[2]-X[1], X[3]-X[2], X[4]-X[3]等.

因此difference(c(5,2,9,4,8))会回来c(-3,7,-5,4)

到目前为止我有这个:

difference<-function(X) {
  for (i in X)
   X.val<-X[i]-X[i-1]
   return(X.val)
    }
difference(c(5,2,9,4,8))
Run Code Online (Sandbox Code Playgroud)

我似乎无法让函数减去它X[2]-X[1],它返回的数字比我运行函数时应该多一个.谁能帮我?

r function difference

4
推荐指数
1
解决办法
100
查看次数

ggplot2移动构面布局

我想手动(或自动)改变R中ggplot2图形的分面图的面板布局.我已经看到了Facets的注释和重新排序的解决方案,但不是这个特定的问题.这是一个可重复的例子:

library(ggplot2)
plot <- ggplot(diamonds, aes(carat, price)) + facet_wrap(~cut) + geom_point()
Run Code Online (Sandbox Code Playgroud)

如果我现在查看绘图,您会看到空白构面分配在绘图网格的右下角.

在此输入图像描述 我想做的就是让空白绘图位置在左上角,但仍然绘制所有其他绘图(只需移动空白绘图位置).

我试过ggplot_build()这样看:

plot_build <- ggplot_build(plot)
plot_build$panel$layout
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将空白绘图位置实际移动到正确的行和列.有没有人有任何想法?

r facet ggplot2

4
推荐指数
1
解决办法
609
查看次数

将^与变量一起使用

我知道grep在R 中使用,如果你想在开头找到某个字符串,你可以使用^,但是如何将它与变量一起使用?

txt <- c("the cat ate the bill", "bill was late")
Run Code Online (Sandbox Code Playgroud)

然后

grep("^bill", txt)
Run Code Online (Sandbox Code Playgroud)

回报2.

我想编写一个函数,它将一个变量字x作为输入,并查找一行是否txt以该字开头.我的第一次尝试是:

extract_word<-function(x){
                    grep(^x, txt)
                    }
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

错误意外^ in:"extract_word <-function(x,txt){grep(^

r

4
推荐指数
1
解决办法
56
查看次数

将列表矩阵转换为 data.frame

我有这个tbl具有以下形式的结构:

> tbl

     a_1   a_2  a_3
 [1,] "L"  "14" "L"
 [2,] "L"  "62" "D"
 [3,] "H"  "0"  "L"
Run Code Online (Sandbox Code Playgroud)

这是一个矩阵,实际上:

> class(tbl)
[1] "matrix"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其更改为 a 时data.frame,df 的所有条目仅显示数据类型,如下所示:

>as.data.frame(tbl, nrow = length(tbl[,1]), ncol = 3, byrow = TRUE)

a_1           a_2         a_3
<list>       <list>      <list>
<chr[1]>    <chr[1]>    <chr[1]>
<chr[1]>    <chr[1]>    <chr[1]>
<chr[1]>    <chr[1]>    <chr[1]>
Run Code Online (Sandbox Code Playgroud)

我尝试了多种选择,但似乎都不起作用,包括:

data.frame(rows=rownames(tbl)[row(tbl)],vars=colnames(tbl)[col(tbl)], values=c(tbl))

但是当我尝试使用它时收到一个错误。我希望结果data.frame采用以下形式:

a_1           a_2         a_3
<char>       <chr>      <char>
"L"           "14"        "L"
"L"           "62"        "D"
"H"           "0"         "L"
Run Code Online (Sandbox Code Playgroud)

我寻找了类似的问题,但找不到任何有同样问题的人。任何建议都会有很大帮助!


dput(tbl)

structure(list("L", …
Run Code Online (Sandbox Code Playgroud)

r matrix dataframe

4
推荐指数
1
解决办法
2209
查看次数

在数据框中填写连续值

我有一个R数据处理问题.我在.csv文件中有大量数据,我可以使用它加载readr.问题是我需要添加到数据帧的缺失值.

示例数据:

X1    X2    Value
Coal  1     300
Coal  3     100
Coal  5     150
NatG  2     175
NatG  4     150
Run Code Online (Sandbox Code Playgroud)

此文件将正确加载.但是,我想添加处理,以便最终的数据帧包含每个X1类型的条目和X2中的整个序列1:5,缺失值设置为零.最终的数据框如下:

X1    X2    Value
Coal  1     300
Coal  2     0
Coal  3     100
Coal  4     0
Coal  5     150
NatG  1     0
NatG  2     175
NatG  3     0
NatG  4     150
NatG  5     0
Run Code Online (Sandbox Code Playgroud)

我尝试使用readr加载所有条目等于零的文件,然后将实际数据读入相同的数据框,但这是一个破坏性的覆盖,并删除了丢失的行.我需要知道如何在数据帧中添加适当的行,而不知道X1下每个值的1:5序列中将丢失哪些值.

r dataframe

4
推荐指数
1
解决办法
487
查看次数

在igraph中存储顶点的顺序

我尝试将图形数据存储在 R 中:

g<- graph.formula(1-2,1-3,2-3,2-4,2-7,3-4,3-6,3-7,3-8,3-9,3-10,4-8,4-9,5-6,5-7,5-8,6-7,6-8,6-9,6-10,7-8,7-9,8-9,8-10)
Run Code Online (Sandbox Code Playgroud)

使用 R 中的 igraph 包。

然而,在查看顶点的顺序时:

V(g)$name
Run Code Online (Sandbox Code Playgroud)

它返回:

 "1"  "2"  "3"  "4"  "7"  "6"  "8"  "9"  "10" "5" 
Run Code Online (Sandbox Code Playgroud)

我可以知道如何输入数据才能使其以升序形式显示吗?

r igraph

4
推荐指数
1
解决办法
1320
查看次数

如何将随机种子分配给 dplyr sample_n 函数?

这是来自 R 中 dplyr 的“sample_n”。
https://dplyr.tidyverse.org/reference/sample.html

为了可重复性,我应该放置一个种子,以便其他人可以获得我的确切结果。

是否有内置的方法来设置“sample_n”的种子?这是我在环境中做的事情并且“sample_n”响应它吗?

这些不是内置在“sample_n”函数中的。

  • 有环境“set.seed”功能[1]
  • 有一个库 'withr' 可以为代码[2]创建一个包含种子的包装器

.

r reproducible-research dplyr random-seed

4
推荐指数
1
解决办法
1699
查看次数

igraph 对象可以有有向边和无向边吗?

我正在尝试使用 igraph/ggraph 来绘制一个网络,其中一些边是有向的,而另一些则不是。

我的边缘列表中的一个小例子。这里,蛋白质位点边缘是我想要表示为无向的,而磷酸化边缘是有向的。

df <- data.frame(
  stringsAsFactors = FALSE,
              from = c("RPS6KA3", "RPS6KA3", "RPS6KA3", "RPS6KA3", "RPS6KA3"),
                to = c("RPS6KA3_Y529-p",
                       "RPS6KA3_S227-p","RPS6KA3_S369-p","RPS6KA3_T577-p","ATF4"),
            action = c("protein-site","protein-site",
                       "protein-site","protein-site","phosphorylation")
)
Run Code Online (Sandbox Code Playgroud)

我尝试对无向边进行子集化并指定它们,但它不起作用:

library(igraph)
nw <- graph_from_data_frame(df)

E(nw)[E(nw)$action == "protein-site"] <- as.undirected(subgraph.edges(nw, E(nw)[E(nw)$action == "protein-site"] ))
Run Code Online (Sandbox Code Playgroud)

有人还有其他建议吗?正如我所说,我真的只想绘制这个(使用 ggraph)。

谢谢!

r graph igraph ggraph

4
推荐指数
1
解决办法
801
查看次数

为什么在 R 中 refs() 对象总是返回 65535?

我尝试在高级 R中实现该示例 ,以查看有多少名称指向某个位置。正如作者所说

\n
\n

请注意,如果您\xe2\x80\x99 使用 RStudio,refs()将始终返回 2:环境浏览器会引用您在命令行上创建的每个对象。

\n
\n

然而,就我而言,即使我已经清除了全局环境,也refs()总会返回65535

\n
library(pryr)\nx <- 1:10\nc(address(x), refs(x))\n\n## "0x1d931f32d68" "65535" \n
Run Code Online (Sandbox Code Playgroud)\n

这是什么意思?

\n

r memory-address

4
推荐指数
1
解决办法
164
查看次数