小编Tho*_*ing的帖子

R data.table 使用 tstrsplit 分解列

我以以下data.table为例

df = data.table(id = c(1, 2, 3), val=c("['hello', 'world']", "['hi']", "['so', 'there']"))
Run Code Online (Sandbox Code Playgroud)

我想将像对象一样的列表拆分为id重复的单独行。所以data.table我想要的预期如下

df2 = data.table(id = c(1, 1, 2, 3, 3), val=c("hello", "world", "hi", "so", "there"))
Run Code Online (Sandbox Code Playgroud)

我尝试了以下

df[, c("test") := tstrsplit(val, ",", fixed=TRUE)]
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误

误差在[.data.table(DF,:=(C( “测试”),tstrsplit(VAL, “”,固定= TRUE))):提供的2项被分配给3个项目栏'测试'的。如果您希望“回收” RHS,请使用 rep() 向您的代码读者明确说明这一意图。

有人可以指出我在这里做错了什么吗?提前致谢。

r strsplit data.table

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

在圆上创建随机点

在 R 中带有噪声的特定半径圆上创建随机点的最简单方法是什么?有图书馆做这种事情吗?

在此输入图像描述

random plot r

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

如何将 char (例如, "[1, 2, 3]" )转换为列表(例如, [1, 2, 3])

有没有一种好的方法可以将数据框中的一列字符转换为 R Studio 中的列表?

例如

转换类型 chr

"[1, 2, 3]"
"[11, 24, 3]"
"[1, 21, 3]"
"[14, 2, 31]"

Run Code Online (Sandbox Code Playgroud)

列出

[1, 2, 3]
[11, 24, 3]
[1, 21, 3]
[14, 2, 31]
Run Code Online (Sandbox Code Playgroud)

string r list

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

创建二变量函数的图像并在 R 中找到其最优值

我正在为我的学位做一些任务,并陷入了对多变量函数进行成像的问题。下列的:

fb<-function(x) {5*x[1]^2+2*x[1]*x[2]+4*x[2]^2+4*x[1]-2*x[2]-2}
> x<--50:50
> y<--50:50
> z<-outer(x,y,fb)
Error in FUN(X, Y, ...) : unused argument (Y)
Run Code Online (Sandbox Code Playgroud)

更重要的是,我需要找到一个具有最大点的最佳值,但是当我尝试不使用向量时,它会给出下一个:

 optim(c(0,0), fb, control=list(fnscale=-5))
Error in fn(par, ...) : argument "y" is missing, with no default
Run Code Online (Sandbox Code Playgroud)

请指教。

optimization r graph function

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

如何使用 R 或 python 为 DNA 序列生成一种热编码

我想为一系列 DNA 序列生成一个热编码矩阵。我尝试通过以下链接解决我的问题: 如何为 DNA 序列生成一种热编码?但有些解决方案仅针对单个 DNA 序列给出,而不是针对一系列 DNA 序列。

例如

def one_hot_encode(seq):
    mapping = dict(zip("ACGT", range(4)))    
    seq2 = [mapping[i] for i in seq]
    return np.eye(4)[seq2]

one_hot_encode("AACGT")
Run Code Online (Sandbox Code Playgroud)

在上面给出的代码中,如果我运行one_hot_encode("AACGT","GGTAC","CGTAC")它将失败,我也想生成矩阵作为输出。

目前,我正在 R 中工作,下面是我在 R 数据框中的 DNA 序列(单列文件)

ACTTTA
TTGATG
CTTACG
GTACGT
Run Code Online (Sandbox Code Playgroud)

预期产出

1   0   0   0   0   1   0   0   0   0   0   1   0   0   0   1   0   0   0   1   1   0   0   0
0   0   0   1   0   0   0   1   0   0   1   0   1 …
Run Code Online (Sandbox Code Playgroud)

python r matrix one-hot-encoding

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

如何在R中找到图上所有可能的有效路径?

我正在 R 中解决一个有趣的问题(可能使用igraph和/或tidygraph库),我需要在图表上找到满足某些条件的所有可能路径。问题可以简化为:

我有16 个不同的节点,可以分为4组,每个节点都有一个特征,称之为颜色。*注意:以下可能不是表示数据的最佳方式,但希望它能传达情况。

nodes_set_1 <- c("red", "blue", "orange")
nodes_set_2 <- c("green", "blue", "red", "yellow", "purple")
nodes_set_3 <- c("blue", "green", "red", "orange", "purple")
nodes_set_4 <- c("orange", "blue", "green")
Run Code Online (Sandbox Code Playgroud)

我现在需要找到这些节点之间满足以下三个条件的所有可能路径: (1) 每条路径必须恰好包含每组中的一个节点。(2) 图形是从nodes_set_1nodes_set_2nodes_set_3nodes_set_4 (3) 单个路径中颜色不能重复。

例如,以下路径是有效的:

path_1 <- c(nodes_set_1[1], nodes_set_2[1], nodes_set_3[1], nodes_set_4[1])

下面的路径将无效,因为颜色“蓝色”重复:

path_2 <- c(nodes_set_1[2], nodes_set_2[2], nodes_set_3[2], nodes_set_4[2])

我希望得到一些关于设置和解决这个问题的建议。找到一种有效确定是否不存在有效解决方案的方法也将令人惊奇。

谢谢你!

performance r combinatorics igraph tidygraph

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

R- 在模式匹配列上进行变异并创建新的 var

我的数据集是这样的

  id start_year subj1_year subj2_year
1  1 2010       2001       2003
2  2 2012       2002       2004
3  3 2015       2003       2005
4  4 2021       2004       2006
Run Code Online (Sandbox Code Playgroud)

我想创建的每个新列"Subj",每个之间的差异subject_yearstart_year列(持续时间):

 id start_year subj1_year subj2_year subj1_duration subj2_duration
1  1 2010       2001       2003              9              7
2  2 2012       2002       2004             10              8
3  3 2015       2003       2005             12             10
4  4 2021       2004       2006             17             15
Run Code Online (Sandbox Code Playgroud)

使用什么可以解决dplyr?谢谢!!

r dplyr

0
推荐指数
1
解决办法
43
查看次数

提取字符串的一部分并连接到开头

我有一个清单

temp_list <- c("Temp01_T1", "Temp03_T1", "Temp04_T1", "Temp11_T6", 
"Temp121_T6", "Temp99_T8")
Run Code Online (Sandbox Code Playgroud)

我想按如下方式更改此列表

output_list <- c("T1_Temp01", "T1_Temp03", "T1_Temp04", "T6_Temp11", 
    "T6_Temp121", "T8_Temp99")
Run Code Online (Sandbox Code Playgroud)

任何线索将不胜感激

regex string r list

0
推荐指数
1
解决办法
45
查看次数

为什么以下 R 代码由于第一个 if 条件后缺少大括号而失败?

以下 R 代码会导致“错误:未找到对象‘test’”。

condition <- 1
if(condition == 0)
if(condition == 1)
{
  test <- "Pass"
}
print(test)
Run Code Online (Sandbox Code Playgroud)

但是,如果我在 if 条件后添加一个大括号,如下所示,那么它就可以正常工作。

condition <- 1
if(condition == 0){}
if(condition == 1)
{
  test <- "Pass"
}
print(test)
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了R 中if 条件的结构,找到了这个页面,其中写着大括号是可选的。那么为什么代码会失败呢?

syntax if-statement r

0
推荐指数
1
解决办法
51
查看次数