我要感谢所有给我提供有用编码建议的人。 我有一排约700个细胞。 每个单元格都有一个“ID号,月,年和状态”。 我想编写程序来删除每个单元格中的月份和年份,但保留ID或状态。
一个好处是每个值之间都有一个空格。 我想让代码识别白色空间? 也许就像 “嘿R你可以删除第二和第四个空格之间的外翻吗?”
“4475 10 2013感染” 变成 “4475感染了”
谢谢,任何提示或建议(甚至包)都有帮助。我也想学习这个 - 我会更新我的代码,因为我想出更多的步骤
答案 0 :(得分:3)
R允许# pragma: nocover_py2
# pragma: nocover_py3
和lists
进行索引编制。你应该放弃术语" cell"在R中工作时的词汇表。vectors
函数可用于在空白处拆分字符值:
scan
如果您希望它们重新加入,scan(text=" 4475 10 2013 infected ", what="")[c(1,4)] # Pick first and fourth.
#Read 4 items
#[1] "4475" "infected"
功能可用。 paste
函数是scan
- 函数的核心,这将是我用于链接中所示数据的内容。如果您要编辑问题以包含read.table
,您可能会得到一个解决您实际问题的答案,但目前您在实际代码中提出的唯一问题已得到解决。 (数据集的图片不会受到热烈欢迎。学习在问题文本中发布实际字符。例如,发布:dput(head(dataset))
这显示了如何使用dput( head( dataset))
从多行数据输入中提取第1和第4项:
scan
答案 1 :(得分:0)
使用sapply
和strsplit
的其他选项。我们基于一个空格进行分割并抛出第3 /第4位置(即第2和第4空间之间)。然后我们重新组合:
txt <- c(" 4475 10 2013 infected ",
" 6685 10 2013 infected ",
" 3547 10 2013 susceptible")
sapply(strsplit(txt," "), function(x) paste0(unlist(x)[-3:-4], collapse=" "))
##[1] " 4475 infected" " 6685 infected" " 3547 susceptible"