首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-如何从数据框中的单个列和行中获取字符串

R-如何从数据框中的单个列和行中获取字符串
EN

Stack Overflow用户
提问于 2012-11-09 23:13:49
回答 4查看 627关注 0票数 2

所以我试着在R中使用these problems来学习它。

但是我坚持使用the first problem来简单地计算字符串中字符的频率。我似乎甚至无法加载数据并访问字符串:-(

我该怎么做,比如打印这个文本文件中字符串的第一个字符?

这是我到目前为止尝试过的:

代码语言:javascript
复制
> rosalind_dna <- read.table("~/Downloads/rosalind_dna.txt", quote="")
Warning message:
In read.table("~/Downloads/rosalind_dna.txt", quote = "") :
  incomplete final line found by readTableHeader on '~/Downloads/rosalind_dna.txt'
>   viewData(rosalind_dna)
> str(rosalind_dna[1,1,1])
 Factor w/ 1 level "GGCCCGGTTACTGCGACTGAACAATCAAAATCTGAAGCATTTAAGCCAAACCAATTGAGATCGACTTACGAGCGATAACCCAGTATATTCAAGTGCTACTGATGAGGCGTGGTCCCCTGGACAAGGC"| __truncated__: 1
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-09 23:32:38

到目前为止,您所做的一切都很好。

read.table返回一个数据帧。在本例中,您只得到一个只有一列且该列中只有一个值的数据框。

默认情况下,R会将数据框中的字符列转换为系数。您可以使用as.character将其转换回来。

然后,您只需将该单个字符串拆分为单个字符(strsplit),然后创建一个表(table)。(不需要循环!)

下面是一个玩具示例,说明了我提到的所有功能:

代码语言:javascript
复制
> dat <- data.frame(V1 = factor("abcdfjtusje"))
> str(dat)
'data.frame':   1 obs. of  1 variable:
 $ V1: Factor w/ 1 level "abcdfjtusje": 1
> x <- as.character(dat[1,1])
> x
[1] "abcdfjtusje"
> strsplit(x,"")
[[1]]
 [1] "a" "b" "c" "d" "f" "j" "t" "u" "s" "j" "e"

> strsplit(x,"")[[1]]
 [1] "a" "b" "c" "d" "f" "j" "t" "u" "s" "j" "e"
> table(strsplit(x,"")[[1]])

a b c d e f j s t u 
1 1 1 1 1 1 2 1 1 1 
> 
票数 2
EN

Stack Overflow用户

发布于 2012-11-10 00:03:39

我已经将链接中的文件复制到了/tmp/string.txt中。这个文件只有一行:

代码语言:javascript
复制
AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC

我们可以使用readLines命令读取该文件:

代码语言:javascript
复制
s = readLines("/tmp/string.txt")

变量s只是一个单独的字符串。为了拆分基数,我们使用:

代码语言:javascript
复制
strsplit(s, "")

然后使用table制作表格

代码语言:javascript
复制
table(strsplit(s, ""))
票数 2
EN

Stack Overflow用户

发布于 2012-11-09 23:24:40

如果您想要显示整个文件的第一个字符,您可以执行以下操作:

代码语言:javascript
复制
s = readLines("Your file.txt",n=1)
substr(s, 1, 1)

要显示每行的第一个字符,请执行以下操作:

代码语言:javascript
复制
s = readLines("Your file.txt")
substr(s, 1, 1)

要显示每行的第n个字符:

代码语言:javascript
复制
n = 5
s = readLines("Your file.txt")
substr(s, n, n)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13310653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档